The sh command invokes the Bourne shell. It is a command interpreter, like bash and csh, but without all the bells and whistles. There is no difference between #!/bin/sh and #!/bin/bash, so it can be used interchangeably in bash scripts.
The sh command invokes the Bourne shell.
The sh command invokes the Bourne shell. The Bourne shell is a command interpreter, like bash and csh, but without all the bells and whistles that might make for a more user-friendly interface.
Sh in a UNIX shell
If you are a programmer, sh is the shell of choice. It’s fast, efficient and not too difficult to learn. Also, most UNIX systems have sh as its default shell which makes it easier for the system administrators to run user commands.
When you are writing a UNIX shell script, sh is used to launch the script. In other words, when you write “sh myscript”, it will be executed by the operating system as another process. But why do we need sh here? There are two reasons:
It allows you to pass more than one command to the operating system because sh itself is a command that accepts parameters and executes them in sequence (aliases are also available).
#!/bin/sh
clear
echo "HELLO WORLD"
It’s called a shebang, and tells the parent shell which interpreter should be used to execute the script.
#!/bin/sh <--------- bourne shell compatible script
#!/usr/bin/perl <-- perl script
#!/usr/bin/php <--- php script
#!/bin/false <------ do-nothing script, because false returns immediately anyways.
Most scripting languages tend to interpret a line starting with #
as comment and will ignore the following !/usr/bin/whatever
portion, which might otherwise cause a syntax error in the interpreted language.
Conclusion
So, sh is a unix shell. A unix shell is a command-line interpreter that interprets commands and executes them on a computer.
The sh shell can be used to run scripts, which are script files containing commands that can be interpreted and executed by the operating system. This article will explain what the sh shell is, how it works and why we need one in the first place!