本文介绍了如何在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变量引用,而不在调用该函数之前声明它?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-29 11:28