1. ホーム
  2. bash

[解決済み] 連想配列:エラー "declare: -A: invalid option"

2023-05-02 07:07:05

質問

bash (v 4)で連想配列を使用するスクリプトを書きました。

を使用している私のローカルマシンでは正常に動作します。 4.1.5(1)-release .

本番機では 4.1.0(1)-release を使用すると、assoc 配列を宣言している次の行は失敗します。

declare -A uniqjars

をメッセージとする。

/script.sh: line 11: declare: -A: invalid option
declare: usage: declare [-afFirtx] [-p] [name[=value] ...]

これはbash4全般の機能という印象ですが?

本番マシンのbashのマニュアルには、次のように記述されています。 -A とあるので、おそらく であるべきだと思います。 が働くはずです。

連想配列の作成は declare -A name .

の値を出力することで、スクリプトが正しいバージョンのbashを使用していることを確認できます。 echo 'bash -version .

何が間違っているのでしょうか?

どのように解決するのですか?

シェルスクリプトの先頭でインタプリタとして起動されるbashのバージョンを確認する ( #!/bin/bash など) でインタプリタとして呼び出されている bash のバージョンも 4 であることを確認してください。もし、あなたが

bash --version

でv4が表示されている場合は which bash を実行して位置を確認します。