質問: bashシェルスクリプトループから配列インデックス変数にアクセスする bashシェルスクリプトで配列をループしながら配列インデックス変数にアクセスしたい。#!/bin/bash ar=('foo' 'bar' 'baz' 'bat') for i in ${ar[*]}; do echo $i done 上記のスクリプトの結果は次のとおりです。foo bar baz bat 私が求める結果は次のとおりです。0 1 2 3 これを実現するためにスクリプトを変更するにはどうすればよいですか?
回答: 1文字追加: #!/ bin/bash ar =( 'foo''bar''baz''bat') for i in $ {!ar [*]}; do← echo "$ i" 完了(感嘆符を追加します(!)配列拡張へ:${!ar[*]}。)マニュアルページから: パラメータ拡張 ... $ {!名前[@]} $ {!名前[*]} 配列キーのリスト。 if 名前は配列変数であり、で割り当てられた配列インデックス(キー)のリストに展開されます。 名前。場合 名前は配列ではなく、次の場合は0に展開されます 名前が設定され、それ以外の場合はnullになります。いつ @が使用され、展開は二重引用符で囲まれて表示され、各キーは個別のwordに展開されます。