如何将数组作为参数传递给 bash 函数?
注意: 在 上没有找到答案后,我自己发布了一些粗略的解决方案。它只允许传递一个数组,并且它是参数列表的最后一个元素。实际上,它根本不是传递数组,而是传递其元素的列表,这些元素通过 重新组装成一个数组called_function(),但它对我有用。如果有人知道更好的方法,请随时在此处添加。
called_function()
您可以使用以下方法将 多个数组作为参数 传递:
takes_ary_as_arg() { declare -a argAry1=("${!1}") echo "${argAry1[@]}" declare -a argAry2=("${!2}") echo "${argAry2[@]}" } try_with_local_arys() { # array variables could have local scope local descTable=( "sli4-iread" "sli4-iwrite" "sli3-iread" "sli3-iwrite" ) local optsTable=( "--msix --iread" "--msix --iwrite" "--msi --iread" "--msi --iwrite" ) takes_ary_as_arg descTable[@] optsTable[@] } try_with_local_arys
sli4-iread sli4-iwrite sli3-iread sli3-iwrite --msix --iread --msix --iwrite --msi --iread --msi --iwrite
编辑/注释:( 来自下面的评论)
descTable
optsTable
$
local
!
${!1}
declare -a