Exploring ‘for’ loop in bash

Exploring 'for' loop in bash

Hello, my name is Mateusz and I am one of the IT guys behind Creative Weblogging. I will start a new mini-series here on this blog writing once in a while about interesting "hacks" or "tips&tricks" I have to use, discover or come up with every day at work. I hope it will be interesting and valuable to see how to make your life much easier when instead of hours of manual labor you can just type couple of lines in Shell and it will do the work for you.
Let's kick off this series with an introduction to a for loop. It's a simple and well-known concept, yet many people don't even realize it's available right there in front of you in every bash.

For loop in bash has many flavors, but that's a topic for another article, let's focus today on one of the simplest ones:

for name in *jpg
do
        echo $name;
done

As you can imagine, this will list all the jpg files in my current dir. No better than ls. But wait, how about doing something with each and every of those files?

for name in *jpg
do
        echo $name;
        convert -resize 100x $name $name;
done

(For the above to work you need to have imagemagick installed)

With those couple of lines we have just resized all the pictures in current dir to thumbnail size. Be careful, we write back to the same file (as the second parameter to convert shows), so there is no way back.

As you can imagine from this simple example there is huge potential there. We will explore more of the for loop in further articles.


This entry was posted on Tuesday, October 23rd, 2007 at 5:13 pm and is filed under Tips & Tricks. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

One Response to “Exploring ‘for’ loop in bash”

  1. Eric Says:

    Good Job Mat :-)

Leave a Reply