1. ホーム
  2. bash

[解決済み] Bashで連想配列を繰り返し処理する方法

2022-03-24 16:03:08

質問

Bashスクリプトで連想配列に基づいて、キーと値を取得するために反復処理する必要があります。

#!/bin/bash

declare -A array
array[foo]=bar
array[bar]=foo

実は、for-inループを使いながらキーを取得する方法がよくわからないのです。

どのように解決するのですか?

感嘆符を使用してキーにアクセスします。 ${!array[@]} は、その を使用してアクセスされます。 ${array[@]} .

このように、キーと値のペアを繰り返し処理することができます。

for i in "${!array[@]}"
do
  echo "key  : $i"
  echo "value: ${array[$i]}"
done

において、変数を引用符で囲んでいることに注意してください。 for ステートメントを使用し(さらに @ の代わりに * ). これは、キーにスペースが含まれている場合に必要です。

他の回答の混乱は、あなたの質問が "foo" と "bar" の両方のキーに含まれていることに起因しています。 値です。