Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在shell脚本中执行mailx命令_Shell_Mailx - Fatal编程技术网

在shell脚本中执行mailx命令

在shell脚本中执行mailx命令,shell,mailx,Shell,Mailx,我有一个执行.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 SU

我有一个执行.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
mailx-s$SUBJECT$EMAIL<$MAILFILE
我知道,如果主题行包含嵌入的空格,那么它需要用双引号括起来,但是当分配给变量时,这似乎不能正常工作


有办法解决这个问题吗?有没有办法避开双引号

在使用时需要引用
$SUBJECT
,即

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

当我这样做:${SUBJECT}时,它似乎(大部分)起作用。但是,由于$SUBJECT被分配了一个字符串作为变量($VERSION),因此该字符串现在是“$VERSION script successful”或“$VERSION script had error”。知道如何将变量$VERSION解析为字符串吗?1。我注意到你的作业中有一个空格,比如
SUBJECT=“…”。2.你所描述的行为听起来像是你的作业中真的有单引号,即
SUBJECT='…'`。现在就去睡觉。我会在早上登记的。祝你好运
SUBJECT="$VERSION script successful"