使用数组作为 argv?

使用数组作为 argv?

在 bash 脚本中,我调用一个带有大量参数的函数,例如/bin/meaningoflife需要 42 个参数。有没有办法将数组传递给命令,而不是手动输入所有 42 个参数?例如:

arr = ("arg1", "arg2", "arg3")
/bin/meaningoflife {argv=arr}

是相同的

/bin/meaningoflife "arg1" "arg2" "arg3"

谢谢!

答案1

bash 语法如下

arr=("arg1" "arg2" "arg3")          # no commas, no whitespace around the assignment
/bin/meaningoflife "${arr[@]}"      # double quotes prevent word splitting of elements

更正式地讲,赋值时不要使用逗号,而是希望数组元素之间用空格分隔。写成

arr=(
  "arg1"
  "arg2"
  "arg3"
)

例如 - 长列表通常更容易阅读。

数组(Bash 参考手册)

相关内容