如何在另一个变量内的变量中用 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 个参数:"2
、3
和 4"
。我需要的是如果我调用 ./sript.sh 1 "2 3 4" 5
,但变量内部变量...
会发生什么
我尝试了所有我知道的掩码和引号技巧,但它不起作用。
你没有;你使用数组。
$ var1="2 3 4"
$ var2=(1 "$var1" 5)
$ ./script.sh "${var2[@]}"
我有一个脚本,我需要在其中计算复杂的参数,它们可能包含空格。我需要将参数存储在变量 var1
中,并将此变量和其他参数存储在变量 var2
中。我将 var2
作为参数传递给另一个脚本。
示例:
$ var1="2 3 4"
$ var2="1 \"$var1\" 5"
$ ./sript.sh $var2
现在“2 3 4”不是脚本的一个参数,而是 3 个参数:"2
、3
和 4"
。我需要的是如果我调用 ./sript.sh 1 "2 3 4" 5
,但变量内部变量...
我尝试了所有我知道的掩码和引号技巧,但它不起作用。
你没有;你使用数组。
$ var1="2 3 4"
$ var2=(1 "$var1" 5)
$ ./script.sh "${var2[@]}"