2013-04-28 219 views
0

當時執行下面的命令,我得到的i-56816733如何打印Linux命令在終端

str=$" $(wget -q -O- http://169.254.169.254/latest/meta-data/instance-id)"
echo $str

但我想打印目前在$符號「STR」的變量整個命令輸出在終端如下: -

$(wget -q -O- http://169.254.169.254/latest/meta-data/instance-id)

我用「回聲」,我怎麼能得到希望上面的輸出?

+1

接下來,您可能會想要閱讀http://mywiki.wool edge.org/BashFAQ/050 – tripleee 2013-04-28 06:29:26

+0

這可能是你的問題中的一個錯字,但請注意,某些shell('bash',至少)將基於區域的翻譯應用於'$「...」'格式的字符串。 – chepner 2013-04-28 16:25:19

回答

2

只需使用單引號:

str='$(wget -q -O- http://169.254.169.254/latest/meta-data/instance-id)' 

,如果你想插有兩種方法,您可以將各種單引號的字符串:

str='$(mkdir'$1')' 

,或者你可以逃脫你想要的美元符號文字和使用雙引號:

str="\$(mkdir $1)" 
+0

它的工作原理,但我無法將命令行參數值分配給'mkdir $ 1'這樣的變量,我無法將值賦給'$ 1'。我能怎麼做 ? – Pravin 2013-04-28 06:14:33