Я думаю, что здесь есть три возможных проблемы.Во-первых, date | awk '{print $2" "$3}'
включает запятую в конце номера дня.Во-вторых, номер дня заполнен пробелами ls
и date
, но awk
будет убирать заполнение.В-третьих, терминатор для if
в bash
равен fi
, а не end if
.
Попробуйте
if files=$(grep "`date '+%b %e'`" list.txt); then
echo "$files" | mailx -s "File exists" name@name.com
else
echo "$files" | mailx -s "File not exists" name@name.com
fi
%e
в date
предполагает ls
возвращает заполненный пробелом номер дня.Если ваша система использует номер дня, дополненный нулями, попробуйте %d
.