Shell脚本中的$()和``及eval区别

Shell脚本中的$()和``及eval区别

**1.和$()有什么区别?** 在shell脚本中,和$()是用来完成命令替换的,先执行反引号或括号里面的内容,将结果代换到当前命令。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FVWBJ1u0-1571972296920)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\1571382557256.png)]
区别:对于转义字符的处理有些不同。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KHsSN7TP-1571972296921)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\1571393059917.png)]

``中的转义没有成功,KaTeX parse error: Undefined control sequence: \将 at position 4: ()中\̲将̲转义成普通字符

2.eval命令

2.1 eval echo相当于echo

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ayb1LW6b-1571972296921)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\1571393024084.png)]

2.2 该命令适用于依次扫描无法完成其功能的变量。

第一步:对eval后面的命令进行扫描,执行变量替换,普通命令保留。
第二步:执行变量替换后的命令串。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Q8LPkh9N-1571972296922)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\1571393034797.png)]

2.3 获取最后一个参数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wH33xAK5-1571972296922)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\1571393046011.png)]

第一行获得参数的个数,第二行获得最后一个参数。

第一行获得参数的个数,第二行获得最后一个参数。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东城绝神

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值