【问题标题】:Bash Script with array带有数组的 Bash 脚本
【发布时间】:2021-01-15 02:38:56
【问题描述】:

我试图编写一个 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, size small, size medium, size large

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

最终的命令如下所示。

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

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

【问题讨论】:

标签: bash shell unix scripting


【解决方案1】:

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

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

可以在您的后续命令中使用,如下所示:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-05
    • 1970-01-01
    • 2017-11-29
    • 1970-01-01
    • 2022-06-15
    • 2016-01-28
    • 1970-01-01
    • 2015-10-21
    相关资源
    最近更新 更多