Case Statement:
case statement is used when there is multiple case of if-else statements.
Syntax:
case <expression> in
pattern_1 )
statements;;
pattern_2 )
statements;;
*)
default_condition;;
esac
Note: “case” “in” “)” “;;” “esac” are the keywords used.
“;;” will be used to indicate that the statements containing to a particular case has ended. “*)” is used for default condition.
Example 1:
In this example, we shall start/stop service according to user input:
#!/bin/bash
case "$1" in
'start')
echo "starting the service";;
'stop')
echo "stopping the service";;
*)
echo "enter start or stop";;
esac
Output:
[root@localhost ajay]# sh case_example.sh start
starting the service
Example 2:
Check the character the user has entered and print approprite value
#!/bin/bash
echo -e "Enter a value"
read value
case $value in
[a-z])
echo "The value $value is in a to z";;
[A-Z])
echo "The value $value is in A to Z";;
[0-9])
echo "The value $value is in 0 to 9";;
?)
echo "The value $value is a speciall character";;
esac
Output:
Enter a value
5
The value 5 is in 0 to 9
Break statement:
Break statement is used to exit the current loop before it’s normal execution. Usually we use this whenever we want to exit the loop prematurely
Example:
In the below example, we run the loop from 1 to 10. But we want to exit out of the loop, when the value is 5. Then we can use “break” statement.
#!/bin/bash
for i in 1 2 3 4 5 6 7 8 9 10
do
if [ $i -eq 5 ]
then
break
fi
echo "$i"
done
Output:
sh 2_.sh
1
2
3
4
Continue statement:
Continue statement is used to skip the execution of the loop, but it will not exit the loop.
Example:
In the example below, when the “i” value is equal to 5, it will skip the execution but will not exit the loop. In the output also, only the value “5” will not be printed.
#!/bin/bash
for i in 1 2 3 4 5 6 7 8 9 10
do
if [ $i -eq 5 ]
then
continue
fi
echo "$i"
done
Output:
sh 2_.sh
1
2
3
4
6
7
8
9
10