Я пытаюсь собрать простой скрипт, который будет сканировать мой домашний каталог с помощью clamscan
и выдаст мне предупреждение, если будут обнаружены какие-либо вирусы. То, что я до сих пор это:
#! /usr/bin/env bash
clamscan -l ~/.ClamScan/$(date +"%a%b%d") -ir /home
RETVAL=$?
[ $RETVAL -eq 0 ] && notify-send 'clamscan finished. No viruses found'
[ $RETVAL -eq 1 ] && notify-send 'clamscan found a virus' && touch ~/Desktop/VirusFound
[ $RETVAL -eq 2 ] && notify-send 'clamscan encountered errors. Check the logs' && touch ~/Desktop/ClamscanError
find ~/.ClamScan/* -mtime +7 -exec rm {} \;
Тем не менее, я не уверен в нескольких вещах:
Я всегда опасаюсь использовать rm
- насколько я могу судить, команда find
я получаю, должна удалять любые файлы журнала, возраст которых превышает неделю.
Я также не совсем уверен, как работает тестирование возвращаемого значения - у меня есть руководство, которое кратко описывает bash, в котором говорится, что означает $?
"соответствует одному символу", и я не совсем уверен, как это получить возвращаемое значение. Должен ли я использовать -eq
или =
для проверки возвращаемого значения? Из того, что я могу сказать, -eq
проверяет строки и =
проверяет цифры, но я не уверен, какой тип возвращаемого значения.