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ファイルを編集しませんでした。誰かが私がこれを解決するのを手伝ってもらえますか?
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
と入力するだけで、デフォルトのシェルを含む現在のユーザープロファイルを表示できます。