Я нашел эту строку:
sh script.sh | grep 'NO' 2>&1 > grep.log && /usr/bin/mail -s "grep found something" m@mail.com < grep.log
который запишет вывод script.sh в grep.log, а затем отправит его по электронной почте m@mail.com
Есть ли способ удалить часть, где это написано в grep.log, и просто отправить вывод скрипта по почте, не записывая его в файл?
Вы можете записывать вывод в переменную оболочки вместо файла журнала:
found_stuff=$(sh script.sh | grep 'NO' 2>&1) &&
echo "$found_stuff" | /usr/bin/mail -s "grep found something" m@mail.com
(Примечание: первая строка должна быть простым присваиванием переменной, а не export var=
или local var=
или declare var=
или что-нибудь в этом роде. В тех случаях &&
зависит от статуса выхода export
etc, а не grep
.)
Чтобы отправлять письма напрямую, вы можете использовать такую команду:
sh script.sh | grep 'NO' 2>&1 | /usr/bin/mail -s "grep found something" m@mail.com