bashでハッシュ(連想配列的な意味で)
bash 4.*でハッシュ(連想配列)が使えるようになったので使ってみました。
標準だとbash 3.*系のディストリビューション*1が多いと思うので、使う機会はまだ少ないかもしれません。
#!/bin/bash declare -A capital # -Aでハッシュ宣言 capital["Japan"]="Tokyo" capital["France"]="Paris" capital["Italy"]="Roma" for idx in Japan France Italy; do echo ${capital[$idx]} # Tokyo Paris Roma done
一括代入する場合は、以下のような感じです。
declare -A capital capital=(["Japan"]="Tokyo" ["France"]="Pris" ["Italy"]="Roma")
bash 3.*系でハッシュ的な配列を使うには、evalを使う必要があります。
evalでも問題ないのですが、直感的に分かりにくいコードのような気がします。
#!/bin/bash capital_jp="Tokyo" capital_fr="Paris" capital_it="Roma" for idx in jp fr it; do eval echo \$capital_${idx} # Tokyo Paris Roma done