In the previous section, we discussed about how continue can be used to exit from the current iteration of a loop. The break command is another way to introduce a new condition within a loop. Unlike continue, however, it causes the loop to be terminated altogether if the condition is met.
In the for_12.sh script, we check the directory's content. If the directory is found, then we are exiting the loop and displaying the message that the first directory is found:
#!/bin/bash
rm -rf sample*
echo > sample_1
echo > sample_2
mkdir sample_3
echo > sample_4
for file in sample*
do
if [ -d "$file" ]; then
break;
fi
done
echo The first directory is $file
rm -rf sample*
exit 0Let's test the program:
$ chmod +x for_12.sh $ ./for_12.sh
The following will be the output after executing the preceding commands:
The first directory is sample_3
In the for_13.sh script, we ask the user to enter any number. We print the square of numbers in the while loop. If a user enters the number 0, then we use the break command to exit the loop:
#!/bin/bash
typeset -i num=0
while true
do
echo -n "Enter any number (0 to exit): "
read num junk
if (( num == 0 ))
then
break
else
echo "Square of $num is $(( num * num ))."
fi
done
echo "script has ended"Let's test the program:
$ chmod +x for_13.sh $ ./for_13.sh
The following will be the output after executing the preceding commands:
Enter any number (0 to exit): 1 Square of 1 is 1. Enter any number (0 to exit): 5 Square of 5 is 25. Enter any number (0 to exit): 0