如何调用一个解释为多个参数的var的脚本

时间:2015-05-01 18:39:27

标签: bash

我有一个var,它是一个包含几个单词的字符串:

my_var="foo bar baz"

我想调用另一个脚本并传入my_var。我希望第二个脚本能够看到三个参数foo bar baz而不是一个参数"foo bar baz"

这是怎么做到的?这是目前的情况:

text_output=$( /bin/bash /the/second/script.sh ${my_var} )

这第二个脚本期待任意数量的参数。目前它说这是一个争论。语法${}可能是问题吗?

2 个答案:

答案 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