HowTo: Skip Bash For Loop

by on May 12, 2009 · 1 comment· LAST UPDATED May 12, 2010

in

How do I skip bash for loop if certain condition is satisfied under UNIX / Linux / BSD / OS X?

You can do early exit with break statement inside the for loop. You can exit from within a FOR loop using break using the following syntax:

for i in 1 2 3 4 5 6 8 9 10
do
  statements1      #Executed for all values of ''I'', up to a disaster-condition if any.
  statements2
  if (disaster-condition)
  then
	break       	       #Abandon the loop.
  fi
  statements3          # While good and, no disaster-condition.
done
 

Example

In this example, go through all conf file in /etc/ directory and break the loop if /etc/resolv.conf file, else loop will end when all files are checked and it will display not found message:

#!/bin/bash
found=0
for i in /tmp/*.conf
do
	if [ "$i" == "resolv.conf" ]
	then
		echo "resolv.conf found in /etc"
		found=1
		break
	fi
done
if [ $found -eq 0 ]
then
	echo "resolv.conf not found in /etc"
fi
 
TwitterFacebookGoogle+PDF versionFound an error/typo on this page? Help us!

{ 1 comment… read it below or add one }

1 boobaloo April 27, 2011 at 12:13 pm

In last example there is error:

for i in /etc/*.conf

Reply

Leave a Comment

Tagged as: , , , , , , , , , , , , , ,

Previous Faq:

Next Faq: