bash - Bash 4連想配列:エラー「宣言:-A:無効なオプション」

原文 bash associative-array

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] ...]


これは一般的なbash 4の機能であるという印象を受けましたか?

本番マシンのbashの男では、-Aの使用について説明しているので、動作するはずです。


  連想配列は次を使用して作成されます
  declare -A name


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

何が間違っているのでしょうか?
答え
シェルスクリプトの上部でインタープリターとして呼び出されるbashのバージョン(#!/bin/bashなど)もバージョン4であることを確認します。

bash --version


v4が提供されるので、which bashを実行してその場所を確認します。
関連記事

python - bashスクリプト内に短いPythonスクリプトを埋め込む

regex - bash、指定された文字列を持つ2行間のgrep

bash - stdoutとstderrをシェルスクリプトの2つの異なるプロセスにパイプしますか?

bash - BashのViコマンドライン編集でコマンドモードと挿入モードを区別する方法

bash - 同じ信号に対する複数のbashトラップ

terminal - Mac OS Xでターミナルを実行しているときに(bashの意味で)エイリアスが定義されている場所を見つける方法

git - Git GUI、Git Bash、Git CMDの違い

macos - Mac OSXターミナルのエイリアスディレクトリにcdするにはどうすればよいですか

bash - Bashユーティリティスクリプトライブラリ[終了]

regex - sedプラス記号が機能しない