Shell script running exception in ubuntu: The difference between bash and dash I used bash to write a shell script (to be precise, I typed the script in the book into the computer). In ubuntu, use sh test. sh. sh running, will print out-e (as a string), and directly input echo-e "\ nTest \ n" in the terminal will not output "-e. I was just wondering why. Later I found that sh in Ubuntu points to dash by default. Echo $ SHELL -->/bin/bashtype sh -->/bin/sh. Then I checked "sh-> dash" under/bin ", the original sh is the link of/bin/dash. Later, google found that buntu6.10 had replaced the previous default bashshell with dash. The result is that/bin/sh is linked to/bin/dash instead of the traditional/bin/bash. Bash-GNU Bourne-Again SHelldash-Debian almshells can be viewed by man bash/man dash respectively. So how can I change sh to bash? The most violent method is to directly change the soft link of/bin/sh to bash, for example, ln-s/bin/bash/bin/sh. However, there are some elegant methods, when the sudo dpkg-reconfigure dash menu appears, you can select no if you want dash. Check again. ls/bin/sh-al finds that the soft link points to/bin/bash.