A login shell is an option of the shell that will executes:
bash -l
A login shell is a shell:
Command such as bash, sudo can create shells on the fly. In case, you want to run the login script, you need to run them as login shell with the –login or -l option.
When bash is invoked as:
it reads and executes commands from the following files in this order:
The file must exists and be readable.
The –noprofile option may be used when the shell is started to inhibit this behavior.
When a login shell exits, bash reads and executes commands from the files:
if the files exists.
In a script, you can test if the shell is a login shell with this predicate.
argv[0][0] == '-'