为了账号安全,请及时绑定邮箱和手机立即绑定

命令替换:反引号或美元符号/括号括起来?

命令替换:反引号或美元符号/括号括起来?

慕的地10843 2019-10-16 12:47:16
在bash中执行命令替换的首选方法是什么?我一直这样做:echo "Hello, `whoami`."但是最近,我经常看到它是这样写的:echo "Hello, $(whoami)."首选语法是什么,为什么?还是它们几乎可以互换?我倾向于第一个,只是因为我的文本编辑器似乎知道它是什么,并且适当地突出显示了语法。我在这里读到,转义字符在每种情况下的行为都有些不同,但是我不清楚哪种行为更可取,还是仅取决于情况。附带问题:在一个脚本中同时使用两种形式是否是不好的做法,例如在嵌套命令替换时?
查看完整描述

3 回答

?
慕田峪7331174

TA贡献1828条经验 获得超13个赞

您可以阅读bash手册中的区别。在大多数情况下,它们是可互换的。


值得一提的是,您应该转而backquote使用嵌套命令:


$ echo $(echo hello $(echo word))

hello word    


$ echo `echo hello \`echo word\``

hello word


查看完整回答
反对 回复 2019-10-16
?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

反引号与古老的shell兼容,因此需要可移植的脚本(例如GNU autoconf代码段)应优先使用它们。

这种$()形式在眼睛上更容易一点,尤其是。经过几级转义。


查看完整回答
反对 回复 2019-10-16
  • 3 回答
  • 0 关注
  • 593 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信