shell 命令替换、变量替换 $() `` ${}

命令替换$() ``

Shell 命令替换是指将命令的输出结果赋值给某个变量
复制代码

Shell 中有两种方式可以完成命令替换,一种是反引号,一种是$(),使用方法如下:

variable=`commands`
variable=$(commands)
复制代码

其中,variable 是变量名,commands 是要执行的命令。commands 可以只有一个命令,也可以有多个命令,多个命令之间以分号;分隔。

a=`expr 1 + 1`
echo $a
复制代码

$( )与``区别

在操作上,这两者都是达到相应的效果,但是建议使用$( ),理由如下:

1.``很容易''搞混乱,尤其对初学者来说。
2.在多层次的复合替换中,``必须要额外的转义字符处理(反斜线),而$( )比较直观。
3.$( )的弊端是,并不是所有的类unix系统都支持这种方式,但反引号是肯定支持的。
复制代码

变量替换 ${}

变量替换
变量替换可以根据变量的状态(是否为空、是否定义等)来改变它的值

可以使用的变量替换形式:

形式	说明
${var}	变量本来的值
${var:-word}	如果变量 var 为空或已被删除(unset),那么返回 word,但不改变 var 的值。
${var:=word}	如果变量 var 为空或已被删除(unset),那么返回 word,并将 var 的值设置为 word。
${var:?message}	如果变量 var 为空或已被删除(unset),那么将消息 message 送到标准错误输出,可以用来检测变量 var 是否可以被正常赋值。
若此替换出现在Shell脚本中,那么脚本将停止运行。
${var:+word}	如果变量 var 被定义,那么返回 word,但不改变 var 的值。
复制代码

转载于:https://juejin.im/post/5ce29b4be51d454fbe24a5e6

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值