双引号,单引号,反引号是shell编程中常用到的符号,下面简单介绍一下它们的区别
双引号能忽略绝大部分符号的特殊含义,但$ \ ` 这三个字符依然保持其特殊含义
例如, name=qwer
echo $name
$代表解释变量的值
所以加上双引号含义是一样的 echo "$name"
#!/bin/bash
name=qwer
echo $name
echo "$name"
可以运行一下,结果是一样的
单引号能忽略所有特殊字符的特殊含义
#!/bin/bash
name=qwer
echo '$name'
输出结果为$name,并没有解释出变量name里存放的值,因为$字符的特殊含义被忽略,当成了普通字符。
反引号代表命令替换,如date在linux中代表时间,用``括起来就代表使用的是此命令
#!/bin/bash
echo `date`
echo `pwd`
运行结果为:
2017年 08月 16日 星期三 07:05:02 PDT
双引号能忽略绝大部分符号的特殊含义,但$ \ ` 这三个字符依然保持其特殊含义
例如, name=qwer
echo $name
$代表解释变量的值
所以加上双引号含义是一样的 echo "$name"
#!/bin/bash
name=qwer
echo $name
echo "$name"
可以运行一下,结果是一样的
单引号能忽略所有特殊字符的特殊含义
#!/bin/bash
name=qwer
echo '$name'
输出结果为$name,并没有解释出变量name里存放的值,因为$字符的特殊含义被忽略,当成了普通字符。
反引号代表命令替换,如date在linux中代表时间,用``括起来就代表使用的是此命令
#!/bin/bash
echo `date`
echo `pwd`
运行结果为:
2017年 08月 16日 星期三 07:05:02 PDT
/mnt/hgfs/share/1009p/shell
在bash中,$( )
与` `
(反引号)都是用来作命令替换的。
命令替换与变量替换差不多,都是用来重组命令行的,先完成引号里的命令行,然后将其结果替换出来,再重组成新的命令行。
$( )与``
在操作上,这两者都是达到相应的效果,但是建议使用$( ),理由如下:
``很容易与''搞混乱,尤其对初学者来说,而$( )比较直观。
最后,$( )的弊端是,并不是所有的类unix系统都支持这种方式,但反引号是肯定支持的。