[英]Illegal variable name tcsh shell linux
我的一個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腳本,則最好對其進行修改,以使其從stdin中讀取:
cat "$WORKING_DIR/logs/$THE_PACKAGE/testResults.out" | \
"$WORKING_DIR/sendEmail.py" "$TEST_STRING, Tests passed" \
>& "$WORKING_DIR/logs/mailOut.txt"
嘗試這個:
ZZZ = $(cat“ $ WORKING_DIR / logs / $ THE_PACKAGE / testResults.out”)
“ $ WORKING_DIR” /sendEmail.py“ $ TEST_STRING,測試通過”“ $ ZZZ”>&“ $ WORKING_DIR” /logs/mailOut.txt
要么
ZZZ = `cat "$WORKING_DIR/logs/$THE_PACKAGE/testResults.out"`
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.