如何在Bash脚本中打印字符串"$1"?

30
我想打印一个名为 "$1" 的字符串。但是当我使用 echo 命令时,它会打印等于 "$1" 变量的字符串。我该如何像打印普通字符串一样打印 "$1"?
例如:
set -- "output"  # this sets $1 to be "output"
echo $1          # ==> output

但我想要这个:

echo $1      # ==> $1

顺便提一下,$1=output其实不是有效的语法;我修改了示例,确保运行时能够正常工作。 :) - Charles Duffy
2个回答

45

您需要转义$才能让它显示:

$ echo "\$1"

或者,正如JeremyP在评论中指出的那样,只需使用单引号即可防止$1的值被扩展:

$ echo '$1'

3
或者 echo '$1'(使用单引号) - JeremyP
2
你对 Shell 的了解太棒了!你真是太厉害了!;) - Ziyaddin Sadigov
2
哦,谢谢@ZiyaddinSadigov,但是你会在SO这里学到更多,就像我一样:D 很快见! - fedorqui

7

您需要执行以下操作之一:

  • 使用单引号括起变量:echo '$1'
  • 转义$符号:echo "\$1"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接