space 作为从 bash 编程的参数
space as parameter to program from bash
我是 运行 来自 bash 的申请,像这样
./app_name var1 var2 $var3
其中 var3
是 --a b, --c d
而 b
和 d
不包含 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
将被视为单个参数。
我是 运行 来自 bash 的申请,像这样
./app_name var1 var2 $var3
其中 var3
是 --a b, --c d
而 b
和 d
不包含 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
将被视为单个参数。