こんにちは私の中前の質問zshシェルで連想配列を使用する方法を明確に理解します。
しかし、スクリプトで次のコマンドを実行するたびに
for KEY in ${!array[@]}
私の配列のキー間反復
エラーが発生しますbad substitution
。
同様echo ${!array[@]}
に与えられた。
注:array
私の連想配列の名前。
ベストアンサー1
zsh
Bashとは異なるパラメータ置換があります。man zshexpn
。いくつかのサポート拡張動作のための修飾子、変数名の前に括弧内に表示されます${(X)name}
。配列キー(関連配列を含む)を含む修飾子は配列のキーリストに展開されますが、空の文字列の場合はキーを省略しますk
。空のキーを保持するには、${(k)array}
二重引用符と@
修飾子を使用してください。
for x in "${(@k)array}" ; ...
配列のキーを繰り返しますarray
。