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}"
我正在尝试编写一个 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}"