2

我想存储(当然还有检索)Bash 的关联数组,并且正在寻找一种简单的方法来做到这一点。

我知道可以通过查看所有键来做到这一点:

for key in "${!arr[@]}"
do
  echo "$key ${arr[$key]}"
done

检索它也可以在循环中完成:

declare -A arr
while read key value
do
  arr[$key]=$value
done < store

但我也看到set将以这种样式打印数组的一个版本:

arr=([key1]="value1" [key2]="value2" )

(不幸的是,还有所有其他 shell 变量。)

有没有比我建议的循环更简单的方法来存储和检索关联数组?

4

1 回答 1

6

要保存到文件:

declare -p arr > saved.sh

(如果您愿意,也可以使用typeset代替。)declare

从文件加载:

source saved.sh
于 2015-04-08T09:04:05.310 回答