本文介绍了如何在bash函数中使用对关联数组的bash变量引用,而不在调用该函数之前声明它?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
从bash脚本中的函数获取结果有多种方式,一种是使用local -n out_ref="$1
这样的引用变量,这也是我的首选方式。
我的bash版本是:
GNU bash, Version 5.0.3(1)-release
最近,我的一个bash函数需要生成一个关联数组,如下面的示例代码所示:
#!/bin/bash
testFunction() {
local -n out_ref="$1"
out_ref[name]="Fry"
out_ref[company]="Planet Express"
}
declare -A employee
testFunction employee
echo -e "employee[name]: ${employee[name]}"
echo -e "employee[company]: ${employee[company]}"
我将变量employee
声明为declare -A
的关联数组。
输出为:
employee[name]: Fry
employee[company]: Planet Express
如果我删除行declare -A employee
,则输出为:
employee[name]: Planet Express
employee[company]: Planet Express
有没有办法将关联数组的声明移到函数中,以便该函数的用户不需要事先执行此操作?
推荐答案
在函数内使用declare -Ag "$1"
,以便将Employee声明为全局变量。
这篇关于如何在bash函数中使用对关联数组的bash变量引用,而不在调用该函数之前声明它?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!