Bash スクリプトの連想配列に基づいて、キーと値を取得するために配列を反復処理する必要があります。
#!/bin/bash
declare -A array
array[foo]=bar
array[bar]=foo
実際のところ、for-in ループを使用しながらキーを取得する方法がわかりません。
ベストアンサー1
キーには感嘆符: を使用してアクセスし${!array[@]}
、値には を使用してアクセスします${array[@]}
。
次のようにキー/値のペアを反復処理できます。
for i in "${!array[@]}"
do
echo "key : $i"
echo "value: ${array[$i]}"
done
ステートメント内の変数を引用符で囲むことに注意してください(の代わりfor
に を使用します)。これは、キーにスペースが含まれている場合に必要です。@
*
他の回答の混乱は、質問にキーと値の両方に「foo」と「bar」が含まれているという事実から生じています。