在 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"
)
例如 - 长列表通常更容易阅读。