61

I know Catalina uses zsh as the default login shell and interactive shell, But it is very annoying when I open iTerm.app or run command with /bin/bash, It shows verbose message like below

$ /bin/bash
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.
101

I found the solution on reddit. The solution is also mentioned in the "How to use a different shell without changing the default" section of the Apple support article mentioned in the bash warning: https://support.apple.com/en-us/HT208050/.

Add:

export BASH_SILENCE_DEPRECATION_WARNING=1

to $HOME/.bash_profile or $HOME/.profile and restart iTerm, the warning message is gone.

| improve this answer | |
  • 14
    Note that this is also listed in the "For more details" link that's in that very warning ;) – scohe001 Oct 10 '19 at 12:31
  • 1
    Just a comment - this didn't work for me in either .profile or .bash_profile in iTerm so I added it to .bashrc which did work. A bit embarrassed that I searched before actually reading the link in the message... :-) – piit79 Nov 26 '19 at 9:51
  • @scohe001 — Updated the answer to make mention of this – M. Justin Feb 25 at 6:45
  • This didn't work for me. In macOS 10.15. I had to add it to /etc/profile instead, per @nverkland . – LexH Sep 3 at 12:41
3

I found that becoming root then adding the deprication suppression in /etc/profile was more reliable. I was already using ZSH and I was getting the warning every time I opened a new console. Terribly annoying. /etc/profile now reads as follows:

# System-wide .profile for sh(1)
export BASH_SILENCE_DEPRECATION_WARNING=1

if [ -x /usr/libexec/path_helper ]; then
        eval `/usr/libexec/path_helper -s`
fi

if [ "${BASH-no}" != "no" ]; then
        [ -r /etc/bashrc ] && . /etc/bashrc
fi
| improve this answer | |
2

Apple's /bin/bash is fairly antiquated (currently v3.2.57). I just switch to use the bash shipped by homebrew (currently v5.0.18), which will incidentally also remove that deprecation warning.

Steps:

  1. Install homebrew if you haven't already https://docs.brew.sh/Installation
  2. In a terminal run:
brew update && brew install bash && sudo chsh -s /usr/local/bin/bash $(whoami)
| improve this answer | |

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .