GNU/Linux >> Linux の 問題 >  >> Linux

シェルスクリプトがメールコマンドでハングアップしますか?

mailコマンドを呼び出すと、スクリプトがエラーなしで一時停止していることがわかりました。スクリプトを閉じるには、ctrl-cを実行するか、プロセスIDに対してkillコマンドを発行する必要があります。

スクリプトの関連セクションは次のとおりです。

EMAIL_TO="[email protected]"

if [ -f /www/archives/pdf/pdf_201207021048.tar ]; then
    echo "file exists"
else
    echo "file does not exist"
fi

echo "sending mail next..."

mail -s "pdfbackup" "$EMAIL_TO"

echo "mail sent?"

これを実行すると、「次のメールを送信しています…」というテキストが表示されますが、それ以上は表示されません。プロンプトに戻ることはありません。

スクリプトがps-ax|でまだメモリ内にあることがわかります。 grepmyscript.sh。

件名とメールの前後に引用符を使用してみましたが、使用していません。どちらの方法でも同じ結果が得られます。

何が間違っているのですか?

承認された回答:

mail プログラムは、ユーザーが標準入力でメッセージを入力することを期待しています(EOF( Ctrl-D で終了) ))。 stdinをリダイレクトしていません。プログラムは、入力を待機しています。 /dev/nullからリダイレクトできます (空のメッセージの場合)、定型ファイルから、またはパイプから、例:

echo Hi, just sending you a message | mail -s "pdfbackup" "$EMAIL_TO"

または

mail -s "pdfbackup" "$EMAIL_TO" < /dev/null

これらは両方とも問題を解決するはずです。


Linux
  1. コマンドライン引数をシェルスクリプトに渡す方法は?

  2. シェルスクリプトの予期しない動作?

  3. bash シェル スクリプトを別のコマンド ライン プログラムと対話させることは可能ですか?

  1. 実行中にシェルスクリプトを編集する

  2. コマンドをシェルスクリプトの変数に格納する方法は?

  3. シェル スクリプト経由で echo コマンドを使用して mysql_secure_installation を自動化する

  1. シェルスクリプトを使用して HTML メールを送信する

  2. シェル スクリプトを使用してデータベース接続を確認する

  3. Linux シェルスクリプトからメールを送信する