存储 Bash 个关联数组
Storing Bash associative arrays
我想存储(当然是检索)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 变量一起。)
是否有比我提出的循环更简单的存储和检索关联数组的方法?
要保存到文件:
declare -p arr > saved.sh
(如果您愿意,也可以使用 typeset
代替 declare
。)
从文件加载:
source saved.sh
我想存储(当然是检索)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 变量一起。)
是否有比我提出的循环更简单的存储和检索关联数组的方法?
要保存到文件:
declare -p arr > saved.sh
(如果您愿意,也可以使用 typeset
代替 declare
。)
从文件加载:
source saved.sh