Как сохранить результат команды mailx в unix для чтения почты в текстовый файл?

Я хочу сохранить непрочитанные письма в текстовый файл в UNIX, используя скрипт оболочки. Этот сценарий оболочки часто выполняется с использованием crontab. Я пытался с приведенным ниже кодом:

#!/bin/ksh mailx > mytest.txt if grep 'unread' mytest.txt then echo "hello" else echo "bye" fi 

При выполнении сценария оболочки непосредственно с сервера я вижу сохраненный текстовый файл с результатом. Но исполнение прекращается после этого.

В чем проблема?

Если mailx обнаруживает непрочитанное сообщение, оно переходит в интерактивный режим и ждет, пока вы отправите интерактивные команды для чтения, сохранения, ответа и т. Д.

Вы можете перенаправить /dev/null в mailx чтобы он немедленно mailx :

 if mailx  

Поведение этого может зависеть от точной реализации mailx (это немного отличается между Unices).