space 作为从 bash 编程的参数

space as parameter to program from bash

我是 运行 来自 bash 的申请,像这样

./app_name var1 var2 $var3

其中 var3--a b, --c dbd 不包含 space。

现在我想将参数 --e f 添加到 $var3,但 f 包含白色 space。问题是我试图避免更改此行。

./app_name var1 var2 $var3

如果我这样保留,app_name 会将 f 的两个部分理解为两个不同的参数,因此无法解析。

我能否以某种方式更改 var3,使其不会将 f 拆分为两个不同的参数?我试过将引号放在里面,转义 space 但它没有帮助。

您可以通过将 var3 设为数组来实现,例如:

var3=(--a b --c d --e "f1 f2")

./app_name var1 var2 "${var3[@]}"

这样 f1 f2 将被视为单个参数。