我有些新手bash脚本。我正在寻找在Bash脚本中使用全局变量的替代方法。我当时认为可能有某种结构的东西,我不知道我可以将一些数据点分组在一起,然后将它们传递给函数。我目前的方案是设置一些全局变量,并在使用何时何地非常谨慎。
是否有更好的替代方法来创建从bash中的函数返回的数据,而不是设置全局变量?
使用namerefs将array 名称传递到函数的一个示例:
$ dump_array() {
local -n a=$1
for i in "${!a[@]}"; do printf "%st%sn" "$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