shell 脚本中双引号 单引号 反引号 的区别

来源:互联网 发布:四核网络机顶盒 编辑:程序博客网 时间:2024/05/20 21:23

转载地址:http://churuimin425.blog.163.com/blog/static/34129877201272194740168/



在shell中引号分为三种:单引号,双引号和反引号。

单引号 ‘
由单引号括起来的字符都作为普通字符出现。特殊字符用单引号括起来以后,也会失去原有意义,而只作为普通字符解释。例如:

$ string=’$PATH’

$ echo $string

$PATH

$

可见$保持了其本身的含义,作为普通字符出现。

双引号 “
由双引号括起来的字符,除$、、’、和”这几个字符仍是特殊字符并保留其特殊功能外,其余字符仍作为普通字符对待。对于$来说,就是用其后指定的变量的值来代替这个变量和$;对于而言,是转义字符,它告诉shell不要对其后面的那个字符进行特殊处理,只当作普通字符即可。可以想见,在双引号中需要在前面加上的只有四个字符$,,’和”本身。而对”号,若其前面没有加,则Shell会将它同前一个”号匹配。

例如,我们假定PATH的值为.:/usr/bin:/bin,输入如下命令:

$ TestString=”$PATH\”$PATH”

$ echo $TestString

.:/usr/bin:/ bin”$PATH

$

读者可以自己试一下在第二个双引号之前不加会产生什么结果。

 

反引号 `
反引号(`)这个字符所对应的键一般位于键盘的左上角,不要将其同单引号(’)混淆。反引号括起来的字符串被shell解释为命令行,在执行时,shell首先执行该命令行,并以它的标准输出结果取代整个反引号(包括两个反引号)部分。例如:

$ pwd

/home/xyz

$ string=”current directory is `pwd`”

$ echo $string

current directour is /home/xyz

$

shell执行echo命令时,首先执行`pwd`中的命令pwd,并将输出结果/home/xyz取代`pwd`这部分,最后输出替换后的整个结果。

利用反引号的这种功能可以进行命令置换,即把反引号括起来的执行结果赋值给指定变量。例如:

$ today=`date`

$ echo Today is $today

Today is Mon Apr 15 16:20:13 CST 1999

$

反引号还可以嵌套使用。但需注意,嵌套使用时内层的反引号必须用反斜线()将其转义。例如:

$ abc=`echo The number of users is `who| wc-l``

$ echo $abc

The number of users is 5

$

在反引号之间的命令行中也可以使用shell的特殊字符。Shell为得到``中命令的结果,它实际上要去执行``中指定的命令。执行时,命令中的特殊字符,如$,”,?等又将具有特殊含义,并且``所包含的可以是任何一个合法的Shell命令,如:

$ ls

note readme.txt Notice Unix.dir

$ TestString=”`echo $HOME ` ` ls 〔nN〕*`”

$ echo $TestString

/home/yxz note Notice


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 牛仔裙老是卷边怎么办 毛边牛仔裙卷边怎么办 牛仔裤短裤卷边怎么办 牛仔裙太宽了怎么办 牛仔裙腰围小了怎么办 牛仔a字裙大了怎么办 牛仔a字裙易变形怎么办 红色皮衣染色了怎么办 羽绒服干了结块怎么办 羽绒服手洗后鸭毛堆在一起怎么办 白色羽绒服发霉了怎么办 早晨起床双脚冷怎么办 黑色棉衣粘毛怎么办 貂皮大衣旧了怎么办 pu皮床头掉皮怎么办 背心领子大怎么办鸡心 羊毛裙子缩水了怎么办 背带裙背带老掉怎么办 背带裙背带坏了怎么办 黑色衣服发红了怎么办 公司拖欠离职员工工资怎么办 windows系统坏了怎么办 背带裙肩带总掉怎么办 四个月宝宝干咳怎么办 4个多月宝宝干咳怎么办 小孩吃饭不嚼怎么办 四个月宝宝积食怎么办 新生儿睡枕头了怎么办 宝宝半夜练翻身怎么办 宝宝牙齿长歪怎么办 婴儿睡觉头歪怎么办 婴儿放在床就哭怎么办 宝宝米粉没吃完怎么办 宝宝吃米粉上火怎么办 幼儿发烧怎么办 两岁 七个月婴儿厌食怎么办 打卤时肉总是沾在一起怎么办 宝宝大便头干硬怎么办 婴儿辅食机的水怎么办 三岁宝宝牙痛怎么办 5岁宝宝牙痛怎么办