Я хочу запомнить ассоциативный массив между различными запусками скрипта. На данный момент у меня есть текстовый файл, содержащий одну пару ключ / значение:
(
[james]=bond
)
Это скрипт, который загружает его в ассоциативный массив, добавляет к нему, а затем выводит его таким образом, который можно перенаправить во второй файл:
#!/bin/bash
file=`cat $1`
key=$2
value=$3
declare -A row="$file"
row[$key]=$value
echo "("
for server in "${!row[@]}"
do echo "[$server]=${row[$server]}"; done
echo ")"
тогда я могу запустить его как:
./arrays.sh file1 honey rider > file2 ; mv file2 file1
дающий
(
[james]=bond
[honey]=rider
)
Все же это кажется очень неуклюжим. Есть ли более чистый способ сделать это?
arrays.bash...
declare -p hash > fileсохранитьhashассоциативный массив.source fileдля восстановления.