2013-04-28 220 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