如何在Bash脚本中传递带有空格的命令行参数

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

./s1 "foo bar"

但是,当我想在另一个脚本(比如s2)中运行上述命令时,该怎么办?如果像上面那样放置,foo bar将被解释为两个参数(传递给s1),而不是一个。
3个回答

17

你可以尝试引用$1

./s2 "$1"

你介意解释一下s2会是什么样子吗?我不需要传递参数给s2,而是需要传递给s1 - Richard
@Richard,我不太确定你在问什么。你能澄清一下吗? - cnicutar

1

使用单引号。

./script '这是一行'

考虑变量替换时,请使用双引号

./script "这是一行"


-4

这样怎么样:

./s1 foo\ bar

那会行吗?


1
谢谢您的建议。我没有足够的声望来在这篇文章上发表评论。下次我会记住的。 - kch

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