It will provide brief knowledge regarding different types of constructs such as conditional statement execution and looping etc, which is crucial for shell Scripting.
2. Nested ifs
You can write the entire if-else construct within either the body of the if statement of
the body of an else statement. This is called the nesting of ifs.
Ex :
chos=0
echo "1. Unix (Sun Os)"
echo "2. Linux (Red Hat)"
echo -n "Select your os choice [1 or 2]? "
read chos
if [ $chos -eq 1 ] ; then
echo "You Pick up Unix (Sun Os)"
else
if [ $chos -eq 2 ] ; then
echo "You Pick up Linux (Red Hat)"
else
echo "What you don't like Unix/Linux OS."
fi
fi
Nihar R Paital
3. Multilevel if-then-else
#!/bin/ksh
echo Enter a number :
read n
if [ $n -gt 0 ]; then
echo "$n is positive"
elif [ $n -lt 0 ]
then
echo "$n is negative"
elif [ $n -eq 0 ]
then
echo "$n is zero"
else
echo "Opps! $n is not number, give number"
fi Nihar R Paital
4. Loops in Shell Scripts
Bash supports:
– for loop
– while loop
In each and every loop,
(e) First, the variable used in loop condition must be initialized, then execution of
the loop begins.
(b) A test (condition) is made at the beginning of each iteration.
(c) The body of loop ends with a statement that modifies the value of the test
(condition) variable.
Nihar R Paital
5. for Loop
1) for x in 10 20 30 40 50
do
echo $x
done
2) Ex: Arrays with for loop
#!/bin/ksh
y="shell scripting Training"
for x in ${y[*]}
do
echo $x
done
Nihar R Paital
6. Ex: for statement
3) for x in `ls`
do
echo $x
done
4) for x in `ls` `cat forloop`
do
echo $x
done
Nihar R Paital
7. while loop
Syntax:
while [ condition ]
do
command1
command2
command3
..
....
done
Nihar R Paital
8. Ex: while statement.
x=1
while [ $x -lt 10 ]
do
echo $x
x=`expr $x + 1`
done
Nihar R Paital
9. until statement
Syntax:
until control command
do
<commands>
Done
Ex:
x=1
until [ $x -gt 10 ]
do
echo $x
x=`expr $x + 1`
done
Nihar R Paital
10. case statement.
The case statement is good alternative to Multilevel if-then-else-fi
statement. It enable you to match several values against one variable.
Its easier to read and write.
Syntax:
case $variable-name in
choice1) commands ;;
choice2) commands ;;
....
....
Esac
The $variable-name is compared against the cases until a match is found. The
shell then executes all the statements up to the two semicolons that are next to
each other. The default is *) and its executed if no match is found. For e.g. write
script as follows:
Nihar R Paital
11. Ex: case statement
echo enter value for x
read x
case $x in
1)ls;;
2)cal;;
3)date;;
*)echo invalid
esac
Nihar R Paital
12. Useful Shell Scripting commands.
break
– To come out of a loop.
continue
– To jump to the start of loop.
exit
– To prematurely terminate a program.
#
– To interpret the rest of line as comments.
Nihar R Paital