Bash 带数组的脚本

Bash Script with array

我正在尝试编写一个 bash 脚本来获取输出 'pkg vim, size small, size medium, size large' 将作为参数传递给另一个命令。

arr_size=(small medium large)
arr_pkg=(vim)
for j in "${arr_pkg[@]}"
      do
   echo  -n pkg "$j"
      done
    for i in "${arr_size[@]}"
  do
       echo -n , size $i
  done

执行脚本给出的输出为 pkg vim,尺寸小,尺寸中,尺寸大

我需要一些关于如何将此输出传递给另一个命令或变量的建议,以便我可以用作另一个命令的参数。

最终命令如下所示。

grun --file 123.txt --tt='pkg vim, size small, size medium, size large'

任何其他建议也会有所帮助

您可以将每个字符串附加到一个变量,例如:

pfx=""                              # start with a null prefix string for first element
arglist=""                          # start with empty arg list

arr_size=(small medium large)
arr_pkg=(vim)

for j in "${arr_pkg[@]}"
do
    arglist+=${pfx}"pkg ${j}"
    pfx=', '                        # use ', ' as prefix for rest of the args
done

for i in "${arr_size[@]}"
do
    arglist+=${pfx}"size ${i}"
    pfx=', '                        # use ', ' as prefix for rest of the args, in case arr_pkg was empty
done

最终结果为:

$ echo "${arglist}"
pkg vim, size small, size medium, size large

可以在您的 follow-on 命令中使用,如下所示:

$ grun --file 123.txt --tt="${arglist}"