python 中会把所有不带引号的(双引号或单引号)字符串都视作变量,会去尝试解释它,如果没有值则报错
所以,想要引入一个字符串就必须加引起号
shell中关于引号
shell中系统会把单绰号中的字符都视作字符本身,没有任务他意。而在双引号里部分特殊字符照常会被解释,如("$",反引号"`")等
grep,sed,awk中关于引号
它们中单引号里的字符都不是会被系统shell所解释,但会被grep,sed,awk内部解释器解释。
例如:
grep -E ‘^a|b‘ filename #在文件filename里查找并打印出开头是a或b的行
sed -n ‘1,10{/^[0-9]/p}‘ filename #打印前10行里以数字开头的行
arg=aaa
awk "/$arg/{print}" filename #这里用了双引号,这样就可以引用系统变量的值
原文:http://www.cnblogs.com/xuxyblog/p/3895131.html