【问题标题】:How to pass command line argument with space in Bash scripts如何在 Bash 脚本中使用空格传递命令行参数
【发布时间】:2012-08-05 21:44:25
【问题描述】:

假设有一个脚本s1,我需要传递参数$1,其值为foo bar,其中包含空格。这是可以做到的

./s1 "富吧"

但是,当我想在另一个脚本中运行上述命令时(比如s2),我应该怎么写呢?如果我把它放在上面,foo bar 将被解释为两个参数(到 s1)而不是一个。

【问题讨论】:

    标签: bash command-line-arguments


    【解决方案1】:

    你可以尝试引用$1:

    ./s2 "$1"
    

    【讨论】:

    • 您介意解释一下s2 的样子吗?我不需要将参数传递给s2,而是传递给s1
    • @Richard 我不太确定你在问什么。你能澄清一下吗?
    【解决方案2】:

    怎么样:

    ./s1 foo\ bar
    

    这行得通吗?

    【讨论】:

    • 感谢您的建议。我没有足够的声誉来对此帖子发表评论。下次我会记住这一点。
    【解决方案3】:

    使用单引号。

    ./script 'this is a line'

    考虑变量替换使用双引号

    ./script "this is a line"

    【讨论】:

      猜你喜欢
      • 2023-04-03
      • 1970-01-01
      • 1970-01-01
      • 2011-07-08
      • 1970-01-01
      • 2021-02-01
      • 2015-10-21
      • 2013-10-11
      • 2015-01-29
      相关资源
      最近更新 更多