4

.sqlスクリプトを実行する単純なシェルスクリプトがあります。.sqlスクリプトが完了すると、シェルスクリプトは、.sqlスクリプトが正常に実行されたかどうかを通知する電子メールを指定されたアドレスに送信します。

私の問題は、件名が切り捨てられていることです。件名を決定するために単純なIFステートメントを使用しています。

grep 'ORA-' $OUTFILE > /dev/null 2>&1
if [ $? = 1 ]; then
    ERRORS=n
    SUBJECT= "$VERSION script successful"
else
    ERRORS=y
    SUBJECT="$VERSION script had error(s)"
fi

これは正常に機能します。ただし、mailxコマンドを実行すると、実行されたスクリプトのバージョンに応じて、件名が「開発」または「本番」に切り捨てられます。

mailx -s $SUBJECT $EMAIL < $MAILFILE

件名にスペースが埋め込まれている場合は二重引用符で囲む必要があることは知っていますが、変数に割り当てると正しく機能しないようです。

これを回避する方法はありますか?二重引用符をエスケープする方法はありますか

4

1 に答える 1

7

$SUBJECT使用するときに引用する必要があります。

mailx -s "$SUBJECT" $EMAIL < $MAILFILE

また、スペースを入れないでください

SUBJECT="$VERSION script successful"
于 2011-05-25T18:04:55.887 に答える