Вы можете использовать только 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
#! /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
Вы можете отредактировать 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
найдите документацию по используемому вами рабочему столу.