Bash Script – Difference between Bash Script and Shell Script
Last Updated :
11 Feb, 2022
In computer programming, a script is defined as a sequence of instructions that is executed by another program. A shell is a command-line interpreter of Linux which provides an interface between the user and the kernel system and executes a sequence of instructions called commands. A shell is capable of running a script. A script that is passed to a shell is known as a shell script.
Bash script:
A Bash Script is just like a simple text file, consisting of a number of commands that we usually write in a command line. In Linux file systems, they are used for doing repetitive tasks. A Bash Script may contain a number of commands, or it might contain elements like loops, functions, conditional constructs, etc. In simple words, a Bash script is a computer program that is written in the Bash programming language.
Some of the features of Bash are given below:
- Bash can be invoked by single-character command-line options as well as multi-character command-line options. For example, (-a, -b) is a single-character command-line, and –debugger is a multi-character command-line option.
- Bash consists of Key bindings.
- Bash provides one-dimensional arrays with the help of which we can easily manipulate the lists of data.
- Bash provides control structures. For example, construct structure, etc.
Example:
#!/bin/bash
myString="GeeksforGeeks"
echo "myString: $myString"
Output:
Bash script
Shell script:
Shell is considered as a special user program that provides a platform or interface to users so that they can use operating system services. Users can provide human-readable commands to a shell and then shell convert them into kernel understandable form. A shell is considered a command language interpreter that can execute commands which can be read from input devices like a keyboard.
Some of the features of a Shell are given below:
- Wildcard substitution in file names (pattern-matching): To carry out commands on a bunch of files by mentioning a pattern to match rather than mentioning an actual file name.
- Background processing: To make lengthy tasks run in the background in order to free the terminal for concurrent interactive processing.
- Piping: To combine any number of commands together in order to form a complex program. The output of one program becomes the input of another command.
- Shell variable substitution: It stores the data in user-defined variables and predefined shell variables.
Now a shell can accept a number of commands through a file, known as a shell script. A shell script contains a number of commands that are executed by a shell. For example,
Example:
#!/bin/sh
myString="GeeksforGeeks"
echo "myString: $myString"
Output:
Shell script
Table of difference between bash script and shell script
Sr. No. |
Bash script |
Shell script |
01 |
The bash script is a script that is specifically created for Bash. |
The shell script is a script that can be executed in any shell. |
02 |
Bash scripting is a subset of shell scripting. |
Shell scripting is a method to automate tasks as a collection of commands. |
03 |
The bash script is one form of shell script. |
Shells may be one of Korn, C shell, Bourne, Bash, etc. |
04 |
Bash is an acronym for Bourne Again SHell and was developed by Brian Fox. |
Shell is considered the original Unix shell developed by Stephen Bourne. |
05 |
Bash has more features as compared to Shell. |
Shell has fewer features as compared to Bash. |
06 |
We can use shebang, “#!/bin/sh” if we want to use sh. |
We can use shebang, “#!/bin/bash” if we want to use Bash if available. |
07 |
Bash is more programmer-friendly as compared to shell. |
Shell is less programmer-friendly as compared to Bash. |