私のBashスクリプトには次のエントリがあります。
echo "Please see attached file" | mailx -S smtp=$smtpServer -s "Subject of the mail" -a $logfile -r "[email protected]" [email protected] [email protected]
メールを送信するときにエラーがない場合は正常に動作しますが、エラーがある場合はmailxはエラーメッセージを表示し、ユーザーがEnterキーを押すのを待ちます。これをどのように避けることができますか?ユーザーがEnterキーを押すのを待つべきではありません。
ベストアンサー1
通常、非対話モードでアプリケーションスイッチを使用するか、それに対するエラーを抑制しようとします。mailx
しかし、文書を少し見た後でも、明確な内容が見つかりませんでした。
これを行うより一般的な方法は、timeout
指定されたコマンドを実行し、指定されたタイムアウト後も実行を続けている場合は、それを終了するコマンドを使用することです。
たとえば、あなたの場合、コマンドは次のようになります。
echo "Mail body" | timeout 15s mailx ${MAILX_OPTIONS}
15秒後もコマンドが実行され続けると、コマンドは終了しますmailx
。これは、継続的なエラーメッセージがある場合にのみ発生します。