M HYPE SPLASH
// updates

What is the meaning of -bash?

By Emma Valentine

I typed the command echo $0 in tty1, and it returned -bash, why not bash?

1 Answer

It indicates that bash was started as a login shell. From man bash, section INVOCATION (emphasis mine):

A login shell is one whose first character of argument zero is a -, or
one started with the --login option.
...
When bash is invoked as an interactive login shell, or as a non-inter‐
active shell with the --login option, it first reads and executes com‐
mands from the file /etc/profile, if that file exists. After reading
that file, it looks for ~/.bash_profile, ~/.bash_login, and ~/.profile,
in that order, and reads and executes commands from the first one that
exists and is 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
file ~/.bash_logout, if it exists.

$0, of course, is argument zero.

In Ubuntu, typically .profile exists and .bash_profile and .bash_login don't. So, a login shell reads .profile.


See also:

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy