Tôi muốn ghi nhớ một mảng kết hợp giữa các lần chạy script khác nhau. Những gì tôi có cho đến nay là đã cho một tệp văn bản chứa một cặp khóa / giá trị:
(
[james]=bond
)
Là một tập lệnh để tải nó vào một mảng kết hợp, thêm vào nó, sau đó lặp lại nó theo cách có thể được chuyển hướng vào một tệp thứ hai:
#!/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 ")"
sau đó tôi có thể chạy nó như:
./arrays.sh file1 honey rider > file2 ; mv file2 file1
Bố thí
(
[james]=bond
[honey]=rider
)
Tuy nhiên, nó có vẻ rất clunky. Có cách nào sạch hơn để làm điều này?
Có lẽ nó nên
—
mikeerv
arrays.bash
...
declare -p hash > file
để lưuhash
mảng kết hợp.source file
để khôi phục lại.