我有一个var,它是一个包含几个单词的字符串:
my_var="foo bar baz"
我想调用另一个脚本并传入my_var
。我希望第二个脚本能够看到三个参数foo
bar
baz
而不是一个参数"foo bar baz"
这是怎么做到的?这是目前的情况:
text_output=$( /bin/bash /the/second/script.sh ${my_var} )
这第二个脚本期待任意数量的参数。目前它说这是一个争论。语法${}
可能是问题吗?
答案 0 :(得分:2)
不要使用plain参数存储多个参数;这就是数组的用途。
declare -a my_arr # optional
my_arr=( foo bar baz )
text_output=$( /bin/bash /the/second/script.sh "${my_arr[@]}" )
答案 1 :(得分:0)
你可以不加引号传递它,以便shell能够扩展它。例子:
my_var="foo bar baz"
fn() { echo $#; }
fn "$my_var"
1
fn $my_var
3