我有一个执行.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
我知道如果主题行包含嵌入空格,则主题行必须是双引号,但在分配给变量时,这似乎无法正常工作。
有解决方法吗?有没有办法逃避双引号
答案 0 :(得分:7)
您在使用时需要引用$SUBJECT
,即
mailx -s "$SUBJECT" $EMAIL < $MAILFILE
中也应该没有空格
SUBJECT="$VERSION script successful"