Bash - Login Shell
Table of Contents
About
A login shell:
- behaves as if the user were login and calls the login script
- will execute at the end of the session a logout script
A login shell is a shell:
- whose first character of argument zero ($0) is a -
- or started with the –login or -l option. See Bash - Bash cli
Articles Related
Login and logout script
Login
When bash is invoked as:
- an interactive login shell,
- or as a non-interactive shell with the –login option,
it reads and executes commands from the following files in this order:
- /etc/profile,
- ~/.bash_profile,
- ~/.bash_login,
- and ~/.profile,
The file must exists and be readable.
The –noprofile option may be used when the shell is started to inhibit this behavior.
Logout
When a login shell exits, bash reads and executes commands from the files:
- ~/.bash_logout
- and /etc/bash.bash_logout
if the files exists.
Management
Test
In a script, you can test if the shell is a login shell with this predicate.
argv[0][0] == '-'