在 bash 脚本中,我调用一个带有大量参数的函数,例如/bin/meaningoflife需要 42 个参数。有没有办法可以将数组传递给命令,而不是手动输入所有 42 个参数?例如:
arr = ("arg1", "arg2", "arg3")
/bin/meaningoflife {argv=arr}
Run Code Online (Sandbox Code Playgroud)
是相同的
/bin/meaningoflife "arg1" "arg2" "arg3"
Run Code Online (Sandbox Code Playgroud)
谢谢!
ste*_*ver 11
bash 语法是
arr=("arg1" "arg2" "arg3") # no commas, no whitespace around the assignment
/bin/meaningoflife "${arr[@]}" # double quotes prevent word splitting of elements
Run Code Online (Sandbox Code Playgroud)
更正式地说,您希望数组元素之间用空格分隔,而不是在赋值中“无逗号”。写成同样有效
arr=(
"arg1"
"arg2"
"arg3"
)
Run Code Online (Sandbox Code Playgroud)
例如 - 对于长列表来说通常更容易阅读。