我相信这个问题对你们中的一些人来说似乎是愚蠢的,但我在这里学习。
这些假设是否适用于大多数语言?
编辑:好的,让我们假设我在谈论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