4

我有一个执行 .sql 脚本的简单 shell 脚本。当 .sql 脚本完成后,shell 脚本会向指定地址发送一封电子邮件,通知 .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 回答