Коды завершения
Переменная ? - код завершения последнего запущенного процесса
$ ls /bin
$ echo $?
$ ls /noexistfile
$ echo $?
Проверка наличия аргументов в скриптах
# cat /root/ex1.sh
#!/bin/sh
test "$1" = "" && \
{
echo usage:
echo /root/ex1.sh url
exit 1
}
...
Управление процессами с использованием кода завершения
Простая система мониторинга
# crontab -l
0 * * * * /bin/ping -c 4 val.bmstu.ru >/tmp/pingval 2>&1 || /usr/bin/mail -s 'p
ing val.bmstu.ru' userX@isp.un </tmp/pingval
Пример с антивирусом
$ wget http://val.bmstu.ru/unix/virus.zip
$ f=/etc/passwd
$ ls $f >/dev/null 2>&1 && echo file $f exist || echo file $f not exist
$ f=virus.zip
$ clamdscan $f || rm $f
$ test -e $f && (clamdscan $f >/dev/null 2>&1 || rm -v $f)
$ clamdscan $f | grep FOUND >/dev/null 2>&1 && rm -v $f