On June 3 during WWDC 2019, Apple announced the next version of its MacOS desktop operating system , one that will come with several new features such as the possibility of using the iPad as the second screen of your Mac, and the division into three apps of iTunes.
However, among the many things that are not discussed in the presentation, there are interesting developments for developers, and a rather important one is the shell change that will suffer macOS soon: bash goes out and from Catalina, zsh will be the shell by default.
Bash goes out and you can also change to zsh in previous versions of macOS
Starting with the beta of macOS Catalina that is already available through the Apple developer program, your Mac will use zsh as the default shell to log in and also as an interactive shell. Although, it is also possible to use zsh as the default shell in previous versions of macOS.
With Catalina, all newly created user accounts will use Z shell by default. If you want to change the shell that your system uses, you can do it from the Users and Groups menu, and after entering your credentials and unlocking the padlock to make changes, you can select between zsh or bash in the advanced options.
Although Apple has not explained why they have decided to make this change, it probably has to do with finally implementing a more modern shell to the bash version they currently use, and there is also the GPLv3 license detail that the more modern versions of bash use and to which “Apple is allergic.”
Zsh is very compatible with sh and quite compatible with bash. The commands and the general interaction of bash and zsh are almost identical, but zsh includes many useful functions, both for advanced and novice users that are not available in bash, as for example, it is better to autocomplete file paths and applications.