如何在 bash 函数中使用对关联数组的 ba​​sh 变量引用而不在调用该函数之前声明它?

It'*_*eto 3 arrays bash associative-array pass-by-reference

有多种方法可以从 bash 脚本中的函数中获取结果,一种是使用引用变量,例如local -n out_ref="$1,这也是我的首选方式。

我的 bash 版本是:

GNU bash, Version 5.0.3(1)-release 
Run Code Online (Sandbox Code Playgroud)

最近,我的 bash 函数之一需要生成一个关联数组作为结果,就像在这个示例代码中一样:

GNU bash, Version 5.0.3(1)-release 
Run Code Online (Sandbox Code Playgroud)

我将变量声明employee为关联数组declare -A

输出是:

employee[name]: Fry
employee[company]: Planet Express
Run Code Online (Sandbox Code Playgroud)

如果我删除该行declare -A employee,则输出为:

employee[name]: Planet Express
employee[company]: Planet Express
Run Code Online (Sandbox Code Playgroud)

有没有办法将关联数组的声明移动到函数中,这样该函数的用户就不需要事先这样做了?

Nil*_*oct 6

declare -Ag "$1"在函数内部使用,以便您将员工声明为全局变量。