我对bash脚本有些新意。我正在寻找在我的bash脚本中使用全局变量的替代方法。我想也许可能有某种结构的东西,我不知道我可以将一些数据点组合在一起并将它们传递给函数。我目前的方案是设置一些全局变量,并且在使用它们的地点和时间时要非常小心。
是否有更好的替代方法来创建从bash中的函数返回的数据,而不是设置全局变量?
答案 0 :(得分:0)
使用namerefs将数组名称传递给函数的示例:
$ dump_array() {
local -n a=$1
for i in "${!a[@]}"; do printf "%s\t%s\n" "$i" "${a[$i]}"; done
}
$ declare -a indexed=(a b c d)
$ declare -A associative=([foo]=bar [baz]=qux)
$ dump_array indexed
0 a
1 b
2 c
3 d
$ dump_array associative
baz qux
foo bar