学以致用十九-----shell脚本之引号

shell脚本中引号也是有讲究的。

可以分为单引号‘ ’,双引号“ ”和 反引号 ` ` 

具体区别来看一个例子

输出结果

可得出结论

1、 单引号括起来的字符都作为普通字符出现,如第4,7,10,13,16,19,22行

值得一提的是第19行,执行结果并非预期的 My home dictory is : ‘$HOME’  而是 My home dictory is :/root

原因是执行的时候My home dictory is : ‘$HOME’  这里还有单引号,$HOME继续作为普通字符串输出,于是进一步分解为 My home dictory is :$HOME,执行系统变量,得到最终结果 My home dictory is :/root

步骤:‘ My home dictory is : ‘$HOME’ ‘ -----------> My home dictory is : ‘$HOME’ ---------> My home dictory is :$HOME ------------>  My home dictory is :/root

2、由双引号括起来的字符,除$ ,反引号 `` 和反斜线 \  (反斜线没有在这举例,后续举例)保留其特殊功能外,其余字符均作为普通字符对待。

如第5,8,11行

第11行, 单引号不保留其特殊功能,因此单引号被输出

第17行,反引号生效,执行$HOME的时候报错,提示 /root是一个目录

第20行,同样是单引号失去其特殊功能,$保留其特殊功能,因此结果是 My home dictory is :'/root'

 3、反引号括起来的字符串会被shell解释为命令,在执行的时候会先执行该命令。因此第17行会报错

 4、反斜线,转义字符,把特殊字符变成普通字符

注意双引号中,反斜线保留其特殊作用时的位置。

猜你喜欢

转载自www.cnblogs.com/liongong/p/9773488.html
今日推荐