How to change the default shell in iTerm?

I'm having some difficulties in changing the value of $SHELL in OSX's iTerm app. iTerm is starting in /bin/zsh, but the value of $SHELL doesn't seem to change.

What I've done:

  1. Changed "command" as /bin/zsh in iTerm's configuration window.
  2. Executed chsh to change the shell to /bin/zsh.
  3. Confirmed iTerm is started in /bin/zsh

NOTE #1: In OSX's stock terminal app, "Terminal.app":

echo $SHELL
/bin/zsh

NOTE #2: In OSX's popular terminal app, "iTerm.app":

$ echo $SHELL
/bin/bash

$ echo $USER
$ melvkim

$ chsh -s /bin/zsh
Changing shell for melvkim.
Password for melvkim:
chsh: no changes made

Solution 1:

The problem was the "iTerm" app's conflicting settings with the shell. To resolve, I've reset "login shell" command in iTerm preference window:

iTerm.app -> Preferences -> Profiles -> General -> Command -> Click on "Login shell"

Then, I executed chsh to modify it as /bin/zsh.

To reproduce the problem (having $SHELL set as /bin/bash/, even though the login shell is /bin/zsh), I just had to change "iTerm" setting back to "Command: /bin/zsh/".

Solution 2:

I had a similar issue but I resolved it by executing the command chsh -s /bin/zsh in the terminal,then navigated to

Terminal -> Preferences -> General window

and changed the Shells open with: option to Default login shell while the command (complete path) set to /bin/zsh.This should solve your problem.