Shell Scripting Tutorial: Shell Script case, break and continue statements

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

 

 

 

 

 

 

 

 

Write a Comment

Leave a Comment

Your email address will not be published. Required fields are marked *