单引号
目的:为了保护文字不被转换.除了他本身.就是说除去单引号外,在单引号内的所有文字都是原样输出.
被单引号用括住的内容,将被视为单一字串。在引号内的代表变数的$符号,没有作用,也就是说,他被视为一般符号处理,防止任何变量替换。
1.[root@jszwl161 SP49EP9]# echo '$*><!'
$*><!
2. [root@jszwl161 SP49EP9]# echo 'she is crying:"help"'
she is crying: "help"
3.[root@jszwl161 SP49EP9]# echo '\\\\'
\\\\
双引号
目的:为了包含文字或者函数段.除了本身,反引号内的函数,$开头的变量和\开头反转换的字符外,其余都是直接输出.
被双引号用括住的内容,将被视为单一字串。它防止通配符扩展,但允许变量扩展。这点与单引数的处理方式不同。
1.[root@jszwl161SP49EP9]# echo "today is `date`"
today is Fri Jul 4 08:03:34 GMT 2008
2.[root@jszwl161 SP49EP9]# echo "today is 'date'"
today is 'date'
3. [root@jszwl161 SP49EP9]# echo "\\\\"
\\
反引号
目的是为了在双引号内保持函数转换.但单引号内其无作用.
在前面的单双引号,括住的是字串,但如果该字串是一列命令列,会怎样?答案是不会执行。要处理这种情况,我们得用反单引号来做。
-
[root@jszwl161SP49EP9]# echo "today is `date`"
today is Fri Jul 4 08:03:34 GMT 2008 #将函数date转换. -
[root@jszwl161SP49EP9]# echo ' today is `date` '
today is `date` #在单引号内无作用.