如何在另一个变量内的变量中用 space 引用参数?

How to quote arguments with space in a variable inside another variable?

我有一个脚本,我需要在其中计算复杂的参数,它们可能包含空格。我需要将参数存储在变量 var1 中,并将此变量和其他参数存储在变量 var2 中。我将 var2 作为参数传递给另一个脚本。

示例:

$ var1="2 3 4"
$ var2="1 \"$var1\" 5"
$ ./sript.sh $var2

现在“2 3 4”不是脚本的一个参数,而是 3 个参数:"234"。我需要的是如果我调用 ./sript.sh 1 "2 3 4" 5,但变量内部变量...

会发生什么

我尝试了所有我知道的掩码和引号技巧,但它不起作用。

你没有;你使用数组。

$ var1="2 3 4"
$ var2=(1 "$var1" 5)
$ ./script.sh "${var2[@]}"