Shell Programming – Part 1
I. Schell Script Overview
The shell is the programming layer that understands and executes the commands entered by a
user. In some systems such as Windows, the shell is called a command interpreter.
The linux shell (/bin/sh) works in an interactive mode and non-interactive mode.
1. Interactive Mode:
Shell is the interface between the user and the Unix System.
The instructions executed by the shell come from the terminal.
Unix Instructions /bin/sh
2. Non-Interactive Mode:
In this mode, the user is able to group the instructions in files called Shell scripts. In such way,
the user can define his own instructions
Unix Instructions /bin/sh
Shell Script
1|Page
2.1.Shell script components
A shell scripts includes:
The different instructions used in interactive mode.
Variables
Control structures (conditions, loops,..)
2.2.Shell script execution
To execute a script file, there is two possible ways:
If the file containing the script does not have the “execute” right:
sh <filename> [<argument> …]
The sh instruction will execute the set of instructions included in the file.
<argument>: the list of inputs which are necessary to the execution of the script
If the file containing the script has the execution right
./<filename> [<argument> …]
In this case, we don‟t need to call the sh instruction. The file is already executable and it is
considered as a new UNIX instruction.
Example :
2|Page
II. Variables in Shell
A shell variable is identified by its name. Shell manages only alphanumeric variables.
There are two kinds of variables:
User variables
Predefined Variables
1. User Variables
To call a user variable, we have to preced its name by the „$‟ character.
1.1.User variable definition
To define and to attribute a value to a variable, the following syntax is used:
<variable_name>=<variable_value>
Example:
Note: echo instruction is used to display a text or a value of a variable.
1.2.User variables concatenation
To concatenate two user variables in UNIX, we have to call them one after the other
Example:
3|Page
1.3.Associate a UNIX instruction to a user variable
<variable_name>=`<instruction>`
According to this syntax, the instruction is first executed and then its result will be stored in the
variable value.
Example:
2. Predefined variables
The predefined variables are the variables defined by the Linux OS, such as:
HOME: the home directory
TERM: the terminal type
LOGNAME: the user name
PATH: the list of directories
PS1: prompt (the charchter $ or #)
PS2: the second prompt (the charchter >)
To know the other predefined variables, type the env instruction.
Try the env instruction in your computer. What is your logname? .................................................
4|Page
3. Variables affected by the shell during the script execution
$0 Name of the running procedure
$1…$9 Value of the 1st argument….Value of the 9th argument
$* List of arguments
$# Number of arguments
Example:
Create a new file called “tryvar” and put the following instructions on it:
5|Page