Linux Shell Scripting – Introduction

Bash shell

shell script is a computer program designed to be run by the Unix shell, a command-line interpreter. Shell is a user program or it’s environment provided for user interaction. Shell is an command language interpreter that executes commands read from the standard input device (keyboard) or from a file. Shell is not part of system kernel, but uses the system kernel to execute programs, create files etc.

Normally shells are interactive. It means shell accept command from you (via keyboard) and execute them. But if you use command one by one (sequence of ‘n’ number of commands) , the you can store this sequence of command to text file and tell the shell to execute this text file instead of entering the commands. This is know as shell script. It is defined like “Shell Script is series of command written in plain text file”.

My First Shell Script

#!/bin/bash
# My First Shell script
echo "Hello World"

Save the above lines in a text file, and you can run the script.

Above shell script explained

#!/bin/bash			(shebang)
# My First Shell script		(Comment, anything after "#" will be treated as comment)
echo "Hello World"		(Content of the shell script, normally commands we need 
                                      to execute)

shebang

It is called a shebang or a “bang” line. It is nothing but the absolute path to the Bash interpreter. It consists of a number sign and an exclamation point character (#!), followed by the full path to the interpreter such as /bin/bash.

Comment

Anything after “#” will be trated as comments. We can add documention to the scripts to make it more readable. A lot of users and system administrators run scripts that were written by other people. If they want to see how you did it, comments are useful to enlighten the reader.

Content of the shell scripts

It can be a single command or a group of commands

Executing shell scripts ?

Shell scripts can be executed in differnt ways

bash myfirstscript  OR sh myfirstscript			# (1)using interpreter 
./myfirstscript	OR /home/eazylinux/myfirstscript	# (2)mentioning path
myfirstscript						# (3)Like normal commands 

In the first way there is no execute permission is compulsary. We can run the script with normal file permissions. Second and third ways require execute permission to run the script.

Run shell scripts as normal commands.

When you type in the name of a command, the system does not search the entire computer to find where the program is located. The shell maintains a list of directories where executable files (programs) are kept, and just searches the directories in that list. This list of directories is called your path. You can view the list of directories with the following command:

echo $PATH

Sample result is like following

/home/eazylinux/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

In order to run shell script as normal commands, we need to save the shell script to the PATH locations. If directory “/home/eazylinux/bin” is present in PATH, save the shell script to that lcoation and you can use your shell script as normal commands. If the path is missing, then you need to add the path to the environement variable PATH. You can add it via the file .profile or .bashrc or your current shell profile file (located in your home directory). Then, each time you open your shell it will be loaded.

For any scripting related issues and for tutorials, you can contact me.

About Suhesh KS 24 Articles
Mr. Suhesh KS is Linux System Administrator by profession with 11 Years of work experience in Linux system administration in web hosting, data center and data warehousing industry and have worked with reputed support companies. He has wide range of skills include team management, system administration ( Linux ), programming ( bash, perl, php, java ), web hosting, data center support, seo analysis.