как автоматически запускать скрипт при открытии определенных приложений

Вы можете использовать только awk:

awk '
/ten/ && /percent/ {
        match($0,"percent=\"([^\"]*)",m)
        if (m[1] < 10) print "CRITICAL"
        else if (m[1] < 20) print "WARNING"
        else print "OK"
}' file  | tail -n3

Но для XML-данных лучше использовать парсер xml:

last_percents=$(
    xmlstarlet select -t  -m '//mem[@type="tenure"]' -v '@percent' -n < file \
    | tail -n3
)

for i in $last_percents; do
    if [ $i -lt 10 ]; then echo "CRITICAL"
    elif [ $i -lt 20 ]; then echo "WARNING"
    else echo "OK"
    fi
done
0
26.05.2021, 20:04
2 ответа
  • аудитд
  • запустить скрипт, который делает что-то вроде этого
#! /bin/bash
while :; do
  test -n "`pgrep vlc`" && do_something
  sleep 1
done
  • наконец
mv /usr/bin/vlc /usr/bin/vlc.bin
cat /usr/bin/vlc
#! /bin/bash
nohup /usr/bin/vlc.bin "$@" &> /dev/null < /dev/null &
do_something
1
28.07.2021, 11:29

Вы можете отредактировать desktop entry, указав на скрипт переноса, который вызывает vlc, а затем на ваш собственный скрипт:

cat /usr/local/bin/vlc_wrap.sh
#!/bin/bash
# swap the order if matters
./path/to/your/script.sh &>/dev/null &
/usr/bin/vlc &>/dev/null &

Затем отредактируйте desktop entryдля vlc:/usr/share/applications/vlc.desktopи измените строку, содержащую ключевое слово Exec. Новый должен указывать на оболочку, которую вы только что написали, и таким образом стать:

Exec=/usr/local/bin/vlc_wrap.sh

Я показал, как это сделать, в gnomeнайдите документацию по используемому вами рабочему столу.

0
28.07.2021, 11:29

Теги

Похожие вопросы