我相信這個問題對你們中的一些人來說似乎是愚蠢的,但我在這裏學習。
這些假設是否適用於大多數語言?
編輯:好的,讓我們假設我在談論Perl/Bash腳本。什麼是(嵌套|雙|簡單)引號的正確用法
'Single quotes'
=>沒有解釋在所有(如 '$' 或任何元字符將被視爲一個字符,將在篩網印花)
"Double quotes"
=>可變解釋
要更準確地說我的擔憂,我正在寫一些shell腳本(其中引號有時可能是一個很大的麻煩),並寫下這一行:
CODIR=`pwd | sed -e "s/$MODNAME//"`
如果我在我的sed中使用了單引號,我的模式應該是'$ MODNAME',對吧? (而不是$的modname,這是在此特定情況下`阿爾法」的實際值)
另一個問題我有,帶有回聲內部的AWK:
USAGE=`echo -ne "\
Usage : ./\`basename $0\` [-hnvV]\n\
\`ls -l ${MODPATH}/reference/ | awk -F " " '$8 ~ /\w+/{print "> ",$8}'\`"`
我花了一些時間調試一個。我得出這樣的結論,反引號是逃脫的,所以解釋者不會「分裂」命令(並在«basename»之前停止)。在awk命令中,'$ 8'被awk成功解釋,因此不被shell解釋。如果我想使用shell變量呢?我會寫awk -F「\」$ MY_SHELL_VAR \「」嗎?因爲$ MY_SHELL_VAR就是這樣,會被awk解釋,不是嗎?
不要猶豫,添加任何關於報價或反引號的信息!
謝謝! :)
我用shell腳本來重新簽名,因爲這就是你的問題所在。簡而言之,每種編程/腳本語言都以各自的方式處理各種引用。 – aberrant80 2009-08-11 08:07:10