zshシェルのエラー置換エラー

zshシェルのエラー置換エラー

こんにちは私の中前の質問zshシェルで連想配列を使用する方法を明確に理解します。

しかし、スクリプトで次のコマンドを実行するたびに

for KEY in ${!array[@]}私の配列のキー間反復

エラーが発生しますbad substitution

同様echo ${!array[@]}に与えられた。

注:array私の連想配列の名前。

ベストアンサー1

zshBashとは異なるパラメータ置換があります。man zshexpn。いくつかのサポート拡張動作のための修飾子、変数名の前に括弧内に表示されます${(X)name}。配列キー(関連配列を含む)を含む修飾子は配列のキーリストに展開されますが、空の文字列の場合はキーを省略しますk。空のキーを保持するには、${(k)array}二重引用符と@修飾子を使用してください。

for x in "${(@k)array}" ; ...

配列のキーを繰り返しますarray

おすすめ記事