非法变量名 tcsh shell linux
Illegal variable name tcsh shell linux
我的 shell 脚本中的以下一行出现 "Illegal variable name" 错误 -
"$WORKING_DIR"/sendEmail.py "$TEST_STRING, Tests passed" "$(cat "$WORKING_DIR"/logs/"$THE_PACKAGE"/testResults.out)" >& "$WORKING_DIR"/logs/mailOut.txt
我认为错误来自以下行:
"$(cat "$WORKING_DIR"/logs/"$THE_PACKAGE"/testResults.out)"
我在网上查了很多资料,还是没能解决这个问题。
试试这个:
ZZZ=$(cat "$WORKING_DIR/logs/$THE_PACKAGE/testResults.out")
"$WORKING_DIR"/sendEmail.py "$TEST_STRING,测试通过" "$ZZZ" >& "$WORKING_DIR"/logs/mailOut。文本文件
或
ZZZ=`cat "$WORKING_DIR/logs/$THE_PACKAGE/testResults.out"`
$()
语法在 csh 中无效,它只能在 Bourne shell 中工作,例如 /bin/sh、ksh、zsh、bash 等。对于 csh,您'仅限于反引号 (`
)。
最好是引用整个路径名而不仅仅是变量:"$var/logs"
而不是 "$var"/logs
;没有真正的理由不这样做 ;-)
将它们放在一起,加上一些为了可读性而添加的换行符,我们得到:
"$WORKING_DIR/sendEmail.py" "$TEST_STRING, Tests passed" \
"`cat "$WORKING_DIR/logs/$THE_PACKAGE/testResults.out"`"\
>& "$WORKING_DIR/logs/mailOut.txt"
也就是说,如果您编写了此 Python 脚本,最好对其进行修改,使其从标准输入读取:
cat "$WORKING_DIR/logs/$THE_PACKAGE/testResults.out" | \
"$WORKING_DIR/sendEmail.py" "$TEST_STRING, Tests passed" \
>& "$WORKING_DIR/logs/mailOut.txt"
我的 shell 脚本中的以下一行出现 "Illegal variable name" 错误 -
"$WORKING_DIR"/sendEmail.py "$TEST_STRING, Tests passed" "$(cat "$WORKING_DIR"/logs/"$THE_PACKAGE"/testResults.out)" >& "$WORKING_DIR"/logs/mailOut.txt
我认为错误来自以下行:
"$(cat "$WORKING_DIR"/logs/"$THE_PACKAGE"/testResults.out)"
我在网上查了很多资料,还是没能解决这个问题。
试试这个:
ZZZ=$(cat "$WORKING_DIR/logs/$THE_PACKAGE/testResults.out")
"$WORKING_DIR"/sendEmail.py "$TEST_STRING,测试通过" "$ZZZ" >& "$WORKING_DIR"/logs/mailOut。文本文件
或
ZZZ=`cat "$WORKING_DIR/logs/$THE_PACKAGE/testResults.out"`
$()
语法在 csh 中无效,它只能在 Bourne shell 中工作,例如 /bin/sh、ksh、zsh、bash 等。对于 csh,您'仅限于反引号 (`
)。
最好是引用整个路径名而不仅仅是变量:"$var/logs"
而不是 "$var"/logs
;没有真正的理由不这样做 ;-)
将它们放在一起,加上一些为了可读性而添加的换行符,我们得到:
"$WORKING_DIR/sendEmail.py" "$TEST_STRING, Tests passed" \
"`cat "$WORKING_DIR/logs/$THE_PACKAGE/testResults.out"`"\
>& "$WORKING_DIR/logs/mailOut.txt"
也就是说,如果您编写了此 Python 脚本,最好对其进行修改,使其从标准输入读取:
cat "$WORKING_DIR/logs/$THE_PACKAGE/testResults.out" | \
"$WORKING_DIR/sendEmail.py" "$TEST_STRING, Tests passed" \
>& "$WORKING_DIR/logs/mailOut.txt"