2013-05-08 55 views
8

我想打印名为“$ 1”的字符串。但是当我用echo来做这件事时,它会打印出等于“$ 1”变量的字符串。如何像字符串一样打印“$ 1”?

例如:

set -- "output" # this sets $1 to be "output" 
echo $1   # ==> output 

但我想这一点:

echo $1  # ==> $1 
+0

仅供参考,'$ 1 = output' ISN实际上有效的语法;我在运行时将示例修正为实际*工作*。 :) – 2017-01-03 23:55:17

回答

17

你必须逃离$已显示出它:

$ echo "\$1" 

,或者由JeremyP注意在评论中,只使用单引号,以便$1的值不会得到ex膨胀性:

$ echo '$1' 
+1

或'echo'$ 1''(使用单引号) – JeremyP 2013-05-08 16:11:37

+0

你对shell的了解太棒了!你真棒! ;) – 2013-05-08 16:16:40

+1

噢谢谢@ZiyaddinSadigov,但​​你会在这里学到更多东西,这就是发生在我身上的事情:D很快见到你! – fedorqui 2013-05-08 16:31:52

3

您需要:

  • 括起来的变量在单引号:echo '$1'
  • 逃离$标志:echo "\$1"
+0

谢谢,@ carlos-campderros! – 2013-05-08 16:17:14