gpt4 book ai didi

linux - 非法变量名 tcsh shell linux

转载 作者:太空宇宙 更新时间:2023-11-04 12:29:21 25 4
gpt4 key购买 nike

我的一个 shell 脚本中的以下一行出现“非法变量名”错误 -

"$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)"

网上查了很多,还是没有解决。

最佳答案

$() 语法在 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"

关于linux - 非法变量名 tcsh shell linux,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43725152/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com