我读过的几乎所有地方,包括谷歌的bash脚本风格指南提及引用命令替换的必要性(当然除非特别需要)。是否有必要在bash中的变量赋值时引用命令替换?
我了解在一般使用期间引用命令替换的时间/地点/原因。例如:echo "$(cat <<< "* useless string *")"
而非echo $(...)
然而,对于变量赋值具体而言,我看到这样的例子很多这样: variable="$(command)"
然而,我已经发现没有实例,其中variable=$(command)
是不等价的。
variable="$(echo "*")"
和variable=$(echo "*")
都将值设置为'*'。
任何人都可以给出任何情况下,在变量分配期间不加引用会导致一个问题吗?
好问题!我做了很多测试,看起来他们完全一样,没有区别。 – fedorqui 2014-11-24 09:26:47
我想他问的问题可能会发生在$ cmd,$ {cmd}。在替代和If子句中,我们需要“”在那里。请纠正,如果我错了 – 2014-11-24 09:29:10