Linux中$(),反引号(``),${},$,$(())的区别

目录

$()和反引号``

${}和$ 

$(())


 

 

$()和反引号``

$()和反引号``的作用结果相同都是用来作命令替换的,通俗来讲就是把命令执行后的结果作为参数返回。

例如:将ls执行后的结果作为参数返回至echo

lhf@ubuntu:~$ echo $(ls)
examples.desktop source test.c workdir 公共的 模板 视频 图片 文档 下载 音乐 桌面

lhf@ubuntu:~$ echo `ls`
examples.desktop source test.c workdir 公共的 模板 视频 图片 文档 下载 音乐 桌面 

 但是$()和``还是稍有不同的,在多层次的复合替换中,``必须要额外的跳脱处理(反斜线),而$( )则不用,比较直观。

# 将cmd1执行结果作为cmd2参数,再将cmd2结果作为cmd3的参数
cmd1 $(cmd2 $(cmd3))


# 如果是用反引号,直接引用是不行的,还需要作跳脱处理
cmd1 `cmd2 \`cmd3\``

${}和$ 

 ${}和$ 的作用是变量替换,通过以下实验可看出,无法直接显示变量A的值,需要$或${}对变量进行转换。

lhf@ubuntu:~$ A=B
lhf@ubuntu:~$ echo A
A
lhf@ubuntu:~$ echo $A
B
lhf@ubuntu:~$ echo ${A}
B

${}与$效果相同,${}中的{}相当于一个界线符,可以很好的划分界限以免混淆,例如

#A与B之间划分界限

lhf@ubuntu:~$ echo "${A}B"
BB

#把AB当成变量名,执行结果为空
lhf@ubuntu:~$ echo "$AB"

$(())

 $(())整数运算

lhf@ubuntu:~$ A=2 B=3 C=4

lhf@ubuntu:~$ echo $((A+B+C))
9

判断C与A值的大小,正确返回1,错误返回0
lhf@ubuntu:~$ echo $((C>A))
1

 

  • 5
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值