在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
吃鸡游戏
TA贡献1829条经验 获得超7个赞
反引号与古老的shell兼容,因此需要可移植的脚本(例如GNU autoconf代码段)应优先使用它们。
这种$()
形式在眼睛上更容易一点,尤其是。经过几级转义。
- 3 回答
- 0 关注
- 593 浏览
添加回答
举报
0/150
提交
取消