数组内部的Bash变量扩展

时间:2019-06-06 20:12:18

标签: arrays bash shell scripting variable-expansion

如何从数组列表内的变量中传递值。

下面的代码有效,它将repo_libs元素分配给repo_list。有没有一种方法可以从变量中读取值以在数组列表中形成数组名称。

 if [[ "$service" == "all" || "$service" == "libs" ]] ; then
    # below working        
    repo_list=("${repo_libs[@]}")
        echo "repo_list : ${repo_list[*]}"
 fi

寻找类似下面的语句

repo_list=(${repo_`echo $service`[@]})
repo_list=("${repo_$service[@]}")

看到如下错误。

./build.sh: line 168: ${repo_`echo $service`[@]}: bad substitution
./build.sh: line 173: ${repo_$service[@]}: bad substitution

[编辑] 这是使用if .. else作为我正在使用的替代方法的代码。

 if [ "$service" = "all" ] ; then
        repo_list=("${repo_all[@]}")
 elif [ "$service" = "libs" ] ; then
        repo_list=("${repo_libs[@]}")
 elif [ "$service" = "portlets" ] ; then
        repo_list=("${repo_portlets[@]}")
 else
        repo_list=("$service")
 fi

0 个答案:

没有答案