Linux Shell 中的反引号,单引号,双引号
2016-07-07 20:51
806 查看
Linux Shell 中的反引号,单引号,双引号
反引号位 (`) 位于键盘的Tab键的上方、1键的左方。注意与单引号(')位于Enter键的左方的区别。在Linux中起着命令替换的作用。命令替换是指shell能够将一个命令的标准输出插在一个命令行中任何位置。
shell脚本中的单引号和双引号一样都是字符串的界定符,而不是字符的界定符。单引号用于保持引号内所有字符的字面值,即使引号内的\和回车也不例外,但是字符串中不能出现单引号。(注意是所有,只是单引号本身不能够出现在其中)。
双引号用于保持引号内所有字符的字面值(回车也不例外),但以下情况除外:
$加变量名可以取变量的值
反引号仍表示命令替换
\$表示$的字面值
\`表示`的字面值
\"表示"的字面值
\\表示\的字面值
除以上情况之外,在其它字符前面的\无特殊含义,只表示字面值。
如下,shell会执行反引号中的date命令,把结果插入到echo命令显示的内容中。
[root@localhost sh]# echo The date is `date`
The date is 2011年 03月 14日 星期一 21:15:43 CST
单引号、双引号用于用户把带有空格的字符串赋值给变量事的分界符。
[root@localhost sh]# str="Today is Monday"
[root@localhost sh]# echo $str
Today is Monday
如果没有单引号或双引号,shell会把空格后的字符串解释为命令。
[root@localhost sh]# str=Today is Monday
bash: is: command not found
单引号和双引号的区别。单引号告诉shell忽略所有特殊字符,而双引号忽略大多数,但不包括$、\、`。
[root@localhost sh]# testvalue=100
[root@localhost sh]# echo 'The testvalue is $testvalue'
The testvalue is $testvalue
[root@localhost sh]# echo "The testvalue is $testvalue"
The testvalue is 100
下面举几个例子:
可见,单引号中完全是保持字符串的原型输出,而双引号进行了命令替换。
由上可见虽然单引号和双引号都是字符串的限定符,但还是有所区别。
相关文章推荐
- Validform+layer实现漂亮的表单验证特效
- 小巧强大的jquery layer弹窗弹层插件
- IOS CoreAnimation中layer动画闪烁的解决方法
- Cocos2D的4个基本概念
- (译)Cocos2d_for_iPhone_1_Game_Development_Cookbook:1.16使用CCParallaxNode
- 魔兽3模型文件 MDL 格式说明
- G012翻译
- CSS样式实现显示隐藏层
- (转)Android display system introduce(Qualcomm 8x60 platform)(二、SW架构--1)
- (转)Android display system introduce(Qualcomm 8x60 platform)(一、HW架构)
- (转)Android display架构分析(六)
- (转)Android display架构分析(七)
- 流媒体学习(一)
- WebGIS:一个图层的傻瓜式完整发布过程(二)
- GeoServer中Layer Group的使用
- 英语句子总结(3)
- TCP/IP与ATM设计(二)
- NSLog學習筆記 (一)
- 控件之美_甘特图
- MO学习整理