Home / cs-notes / Operating System / Linux / Shell / login mode
bash
➜ ~ bash -l -c 'shopt | grep login'
login_shell on
➜ ~ bash -c 'shopt | grep login'
login_shell off
➜ ~ bash -l -c 'shopt login_shell; echo $?'
login_shell on
0
➜ ~ bash -c 'shopt login_shell; echo $?'
login_shell off
1
bash
shopt -q login_shell && echo 'Login shell' || echo 'Non-login shell'
Non-login shell
bash -l # --login
shopt -q login_shell && echo 'Login shell' || echo 'Non-login shell'
Login shell
zsh
➜ ~ zsh -c ' [[ -o login ]] && echo "Login shell" || echo "Not login shell" '
Not login shell
➜ ~ zsh -l -c ' [[ -o login ]] && echo "Login shell" || echo "Not login shell" '
Login shell
➜ .m2 zsh -c ' setopt | grep -q login; echo $? '
1
➜ .m2 zsh -l -c ' setopt | grep -q login; echo $? '
0