8
無可否認,我是一名bash初學者。我總是希望爲了我的shell腳本目的達到Python。不過,我試圖強迫自己學習一些bash。我很好奇爲什麼下面的代碼不起作用。內聯bash腳本變量
sh -c "F=\"123\"; echo $F"
無可否認,我是一名bash初學者。我總是希望爲了我的shell腳本目的達到Python。不過,我試圖強迫自己學習一些bash。我很好奇爲什麼下面的代碼不起作用。內聯bash腳本變量
sh -c "F=\"123\"; echo $F"
它不工作,因爲在雙引號字符串變量展開發生之前被稱爲命令。也就是說,如果我輸入:
echo "$HOME"
外殼轉變成這樣:
echo "/home/lars"
前實際調用echo命令。同樣,如果您鍵入:
sh -c "F=\"123\"; echo $F"
這被轉化爲:
sh -c "F=\"123\"; echo"
調用的sh
命令之前。您可以使用單引號來抑制變量擴展,例如:
sh -c 'F="123"; echo $F'
您也可以用反斜槓逃脫$
:
sh -c "F=\"123\"; echo \$F"
另外,如果你想學習'bash',花一些高質量的時間用'bash'手冊頁,還有[#bash faq](http://mywiki.wooledge.org/BashFAQ)。 – larsks 2012-04-01 01:06:12
另外,請注意,在單引號中,不需要反斜槓 - 引號:''F =「123」''而不是''F = \「123 \」'''。 – larsks 2012-04-01 01:07:45
謝謝!完全意義。這些小細節帶來了很大的變化。 :-) – Daniel 2012-04-01 01:30:55