据我了解,由于较容易且不易出错的嵌套和转义语法,更现代的$(...)
命令替换语法比`
基于旧的语法更可取。
此外,/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
没有$(...)
(但是使用或教导它们也没有多大意义)。