Shell中反引号与$()的用法比较

本文探讨了Shell编程中$()与反引号(``)调用系统命令的差异。两者均可独立调用命令,但在嵌套调用时,$()表现更稳定,避免了反引号可能引发的错误。文章建议使用$()以增强脚本的可靠性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

两者直接的区别, 推荐使用$()代替反引号

两者都可以调用系统命令,

1. 单独调用

两者结果完全一样。

[root@izwz91rruliuj88pj4zsw0z ~]# echo `pwd`
/root
[root@izwz91rruliuj88pj4zsw0z ~]# echo $(pwd)
/root

2. 嵌套调用
$()结果正确, 反引号结果不正确

当前目录:

root@iZhtbq9i9lb77uZ:/home/dengfei/R# pwd 
/home/dengfei/R

$()镶嵌结果正确

root@iZhtbq9i9lb77uZ:/home/dengfei/R# echo $(basename $(pwd))
R

反引号镶嵌,结果报错

root@iZhtbq9i9lb77uZ:/home/dengfei/R# echo `basename `pwd``
basename: missing operand
Try 'basename --help' for more information.
pwd

3. 混合镶嵌
两者都正确

root@iZhtbq9i9lb77uZ:/home/dengfei/R# echo $(basename `pwd`)
R
root@iZhtbq9i9lb77uZ:/home/dengfei/R# echo `basename $(pwd)`
R

结论

shell编程中, 要用$()取代反引号调用系统命令, 以避免不可预知的错误.
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值