typeset -Aはスクリプトでエラーを発生させます。

typeset -Aはスクリプトでエラーを発生させます。

私のスクリプトで連想配列を使用しているので、

typeset -A <array_name>コマンドを実行すると、bashプロンプトで正しく機能します。

ただし、スクリプトで使用すると、次のエラーが発生します。 typeset: -A: invalid option typeset: usage: typeset [-afFirtx] [-p] name[=value] ...

私も代替ソリューションで開いています。

注:typeset -aを試しましたが、インデックス配列を宣言しました。しかし、私は連想配列を望んでいます。

答え1

これはBash 3でtypeset -A連想配列Bash 4に追加されましたここではないバッシュ3.2以下。

あなたのスクリプトは、シェルとして使用されているものとは異なるバージョンのBashで実行されているようです。どちらの場合も、同じシステム上にある場合は複数のバージョンがインストールされており、パスが異なるバージョンを選択できます。別のコンピュータでスクリプトを実行すると、最新バージョンをインストールできますが、そうでなければ Bash は直接サポートされません。

zsh連想配列は以前のバージョンからサポートされているため、利用可能な機能があれば、多くの作業なしでスクリプトを移植できます。そうでない場合は、通常の配列 sum を使用して偽造するか、grep次を使用できます。${!prefix@}以前のバージョンのBashで利用可能な一般的な変数セットもあります。${!prefix@}名前はで始まるすべての変数の名前に展開されますprefix。これを複数の変数と組み合わせて使用​​して、連想配列の動作をほとんど得ることprefix_key1ができます。prefix_another

関連情報