【发布时间】:2021-09-10 23:37:42
【问题描述】:
有多种方法可以从 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 -p employee而不是echo来检查变量及其属性。
标签: arrays bash pass-by-reference associative-array