Когда /usr/bin/find
находит какой-либо файл в соответствии с его аргументами, происходят два события: в качестве значения возврата в переменную $?
устанавливается значение возврата и в переменную $MYOUT
выводится строка в соответствии с вашим кодом.
Из вашего вопроса "... скрипт для отправки почты, только если команда возвращает вывод", я могу вывести, что вы хотите использовать второй метод для принятия решения об отправке почты.
В этом случае вам необходимо изменить условие теста, как показано ниже, проверив значение $MYOUT
, а не $?
, заключив тест в квадратные скобки:
MYOUT=$(/usr/bin/find /home/public_html/ \( -iname "*.js" -o -iname "*.tpl" -o -iname "*.php" \) -mtime -1)
if [ -n "$MYOUT" ]
then
mail -s "Hack attempt" my_mail@gmail.com <<<"$MYOUT"
fi