shell反引号`与$()的区别

反引号`` 与 $() 都是命令替换

举例1:
root@localhost software]# cat 3.sh 
#!/bin/bash
echo `echo $HOSTNAME`
echo $(echo $HOSTNAME)
[root@localhost software]# sh 3.sh
localhost.localdomain
localhost.localdomain
区别:
反引号中:若要使用转义字符需要两个反斜杠\\
$()中:   若要使用转义字符只需用单反斜杠\

举例2:
[root@localhost software]# cat 3.sh 
#!/bin/bash
echo `echo \$HOSTNAME`    反引号使用单反斜杠,$没有被转义成普通字符,所以还是执行了命令
echo $(echo \$HOSTNAME)   这里使用单反斜杠,$被转义成普通字符,所以被当成普通字符串
[root@localhost software]# sh 3.sh
localhost.localdomain
$HOSTNAME

举例3:
[root@localhost software]# cat 3.sh 
#!/bin/bash
echo `echo \\$HOSTNAME`
echo $(echo \$HOSTNAME)
[root@localhost software]# sh 3.sh
$HOSTNAME
$HOSTNAME
总结:反引号与$()都是命令替换即:
$(cmd)<=>`cmd`
唯一的区别就是转义字符的使用不一样。
$(command1;command2)
当小括号里有多个命令表达式时,使用分号 ; 分隔

单引号&双引号

1、单引号:里面的变量不会执行,即变量不会被替换
2、双引号:里面的变量会被执行,即变量会被替换

小礼物走一走,来简书关注我



作者:Chaweys
链接:https://www.jianshu.com/p/3129f22d3d94
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值