【发布时间】:2011-04-16 22:27:47
【问题描述】:
命令替换有两种不同的语法,
FOO=$(echo bar)
和
FOO=`echo bar`
据我所知,第一种方法是在 Bash 中定义的,而第二种方法是在 sh 中定义的。
考虑在sh 脚本中使用以下命令替换。
#!/bin/sh
FOO=$(echo bar)
这是否属于bashism 的定义?
bashisms,即未定义的特征 POSIX(不能在破折号或一般情况下工作 /bin/sh)。
【问题讨论】:
-
始终使用更现代的(在我看来,正确的)版本有两个很好的理由。 $() 几乎比反引号更具可读性,并且 $( $( ) ) 是可嵌套的,这有时是一个巨大的优势。现在没有充分的理由使用反引号。