我按照以下步骤将 macOS Catalina (10.15.1) 上的默认 shell 短暂地更改为 FishFish 的文档。
首先,我执行了,> echo /usr/local/bin/fish | sudo tee -a /etc/shells
然后执行了> chsh -s /usr/local/bin/fish
。之后,我意识到我只需要使用其中一个命令,而不是两个,但是算了。木已成舟。
后来,我决定切换回 bash,所以我反向运行了这些命令(根据 Fish 的恢复说明)首先,> echo /bin/bash | sudo tee -a /etc/shells
然后> chsh -s /bin/bash
当我使用 Bash 重新加载 shell 时,收到以下错误。
-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.
在将 shell 更改为 Fish 然后又改回 Bash 之前,没有出现此错误,而且在将 shell 改回 Bash 之前,我没有编辑任何 .bashrc 或 .bash_profile 文件。有人能帮我解决这个问题吗?
答案1
这/bin/bashmacOS Catalina 附带的版本非常旧(版本 3.2.57),并且不支持declare -A
。大概你一直在使用 Homebrew 版本安装在 /usr/local/bin/bash它确实支持declare -A
。假设你有一个在 /usr/local/bin/bash只需确保存在于/etc/shells然后运行chpass -s /usr/local/bin/bash
。
chpass
PS,您只需输入不带选项的文字,即可查看当前的用户配置文件,其中包括您的默认 shell 。