Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

What is the difference between bash and -bash. When I execute echo $0, it returns bash on one machine and -bash on the other machine. What is the difference between them?

share|improve this question

migrated from May 22 '13 at 11:44

This question came from our site for professional and enthusiast programmers.

I think it's only a matter of formatting the output. As far as I know, there's no such thing as a -bash shell, but I could be mistaken of course. – John Willemse May 22 '13 at 8:30
$0 is only the name of the command by convention. And another convention is for a login shell to have - in front of its name in $0. If you look at man exec you'll see that you can make $0 be anything you like when you execute bash. – Adrian Pronk May 22 '13 at 8:34
up vote 8 down vote accepted

Processes with a - at the beginning of arg 0 have been run via login, or by exec -l in bash.

share|improve this answer
Thanks :) After reading your answer, I did help exec and that reads, If the first argument is '-l', then place a dash in the zeroth arg passed to FILE, as login does. – thefourtheye May 22 '13 at 8:40

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.