gpt4 book ai didi

Bash: `declare -A` 声明的关联数组在函数外不可用

转载 作者:行者123 更新时间:2023-12-01 22:50:57 25 4
gpt4 key购买 nike

<分区>

在这里,我们以完全相同的方式初始化两个关联数组arr_Aarr_B,但是arr_A 是在顶层初始化的,而 arr_B 在函数 foo 中初始化:

#!/bin/bash

declare -A arr_A
arr_A[bar]=42

function foo() {
declare -A arr_B
arr_B[bar]=58
echo "content of arr_B inside foo = ${arr_B[@]}"
}
foo

echo "content of arr_A on top level = ${arr_A[@]}"
echo "content of arr_B on top level = ${arr_B[@]}"

预期输出:

content of arr_B inside foo = 58
content of arr_A on top level = 42
content of arr_B on top level = 58

实际输出:

content of arr_B inside foo = 58
content of arr_A on top level = 42
content of arr_B on top level =

为什么会这样?

有没有办法在函数内部初始化一个新的关联数组,并在函数返回后使用它?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com