停止bash从命令行扩展$

时间:2011-07-25 16:43:13

标签: bash

我有一个我试图调用的脚本需要将$符号传递给它。如果我将脚本作为

运行
./script "blah$blah" 

它被传递得很好但是然后脚本调用了另一个我无法控制的程序,然后将参数扩展为“blah”。该程序由命令程序$@调用。我想知道是否有办法防止参数传递到下一个脚本时被扩展。

3 个答案:

答案 0 :(得分:5)

  • 使用:$转义角色\,例如:"This will not expand \$hello"
  • 使用单引号:'This will not expand $hello'
  • 使用HERE DOC

    <<'EOF'
    This will not expand $hello
    EOF

在您的情况下,我建议使用单引号以提高可读性:./script 'blah$blah'

答案 1 :(得分:2)

使用单引号呼叫:

./script 'blah$blah'

或逃避$

./script "blah\$blah"

答案 2 :(得分:2)

涉及更改报价的几个选项:

./script 'blah$blah'

./script "blah\$blah"

我希望这会有所帮助。