我讀過的幾乎所有地方,包括谷歌的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