web-dev-qa-db-ja.com

/ bin / bashシェル(macOS)が `-bash:declare:-A:invalidoption`エラーメッセージをシェル開始時にスローします

Fishのドキュメント の手順に従って、macOS Catalina(10.15.1)のデフォルトのシェルをFishに簡単に変更しました。

最初に> echo /usr/local/bin/fish | Sudo tee -a /etc/shellsを実行し、次に> chsh -s /usr/local/bin/fishを実行しました。その後、これらのコマンドの両方ではなく、1つだけを使用する必要があることに気付きましたが、まあ。覆水盆に返らず。

後で、bashに戻すことにしたので、コマンドを逆に実行しました(Fishの元に戻すための指示に従って)。最初に> echo /bin/bash | Sudo tee -a /etc/shells、次に> chsh -s /bin/bashを実行しました。

Bashを使用してシェルをリロードすると、次のエラーが発生しました。

-bash: declare: -A: invalid option
declare: usage: declare [-afFirtx] [-p] [name[=value] ...]
-bash: complete: -D: invalid option
complete: usage: complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W wordlist] [-P prefix] [-S suffix] [-X filterpat] [-F function] [-C command] [name ...]

The default interactive Shell is now zsh.
To update your account to use zsh, please run `chsh -s /bin/zsh`.
For more details, please visit https://support.Apple.com/kb/HT208050.

このエラーは、シェルをFishに変更してからBashに戻す前には表示されませんでした。また、シェルをBashに戻す前に、.bashrcファイルまたは.bash_profileファイルを編集しませんでした。誰かが私がこれを解決するのを手伝ってもらえますか?

3
thrillifying

MacOS Catalinaに同梱されている/ bin/bashは本当に古く(バージョン3.2.57)、declare -Aをサポートしていません。おそらく、declare -Aをサポートする/ usr/local/bin/bashとしてインストールされたHomebrewバージョンを使用していました。したがって、/ usr/local/bin/bashがあると仮定すると、それが/ etc/shellsに存在することを確認してから、chpass -s /usr/local/bin/bashを実行します。

追伸、オプションなしでchpassと入力するだけで、デフォルトのシェルを含む現在のユーザープロファイルを表示できます。

2
Kurtis Rader