ユーザーがEnterキーを入力するのを待つbashスクリプトの防止

ユーザーがEnterキーを入力するのを待つbashスクリプトの防止

私の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。これは、継続的なエラーメッセージがある場合にのみ発生します。

おすすめ記事