空间作为从bash编程的参数

我从bash运行应用程序,就像这样

./app_name var1 var2 $var3 

其中var3--ab, --cd ,其中bd不包含空格。

现在我想将参数--ef添加到$var3 ,但是f包含空格。 问题是我试图避免这一行的变化。

 ./app_name var1 var2 $var3 

如果我这样离开它, app_namef两个部分理解为两个不同的参数,因此无法parsing。

我可以以某种方式更改var3 ,使其不会将f分成两个不同的参数吗? 我试图把报价放在里面,逃避空间,但没有帮助。

你可以通过使var3成为一个数组,例如:

 var3=(--ab --cd --e "f1 f2") ./app_name var1 var2 "${var3[@]}" 

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