据我了解,由于较容易且不易出错的嵌套和转义语法,更现代的$(...)命令替换语法比`基于旧的语法更可取。
此外,/bin/sh现代使用的大多数样式的shell 似乎都支持$(…):
- 重击
- 灰(因此是BusyBox,因此是大多数嵌入式Linux)
- 短跑
- FreeBSD / bin / sh
而$(…)由IEEE 1003.1规定。
所以我有两个非常相关的问题:
- 除非您知道该脚本需要在特定的旧系统上运行,否则是否有理由在新的Shell脚本开发中使用`?
- 是否有任何理由不教UNIX编程专业的学生仅仅编写
$(...)和讨论,而只是讨论`他们在阅读其他开发人员的shell脚本时可能会遇到的过时变体(如果使用的是真正的旧系统或非标准系统,则可能需要这样做)因为某些原因)?
这是
—
格劳乔
等等,反引号已弃用??有人有规范的参考来解释为什么吗?(很难找到奇怪的语法字符。)
—
MathematicalOrchid
易于输入。``-2次按键;
—
六。
$()-shift + 4,9,shift + 0-5次按键;
@MathematicalOrchid stackoverflow.com/questions/9405478/...好像还不错。反引号很难正确嵌套,尤其是在涉及其他引号时。
—
Michael Ekstrand
`...`。它在那里仅用于Bourne Shell的向后可移植性(就像Bourne Shell 的Thomson Shell的向后可移植性^一样(与相同|))。但是请注意,(t)csh没有$(...)(但是使用或教导它们也没有多大意义)。