In this chapter we shall look at the below topics:
7.1 Case Statement
7.2 Break statement
7.3 Continue statement
7.1 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:
./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
7.2 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
7.3 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 equall 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