You could use a loop like those shown below to run through the letters of the alphabet or a sequence of numbers.
$ for x in {a..z} do echo $x done $ for x in {1..11}; do echo $x; done
The for command below would display calendars for the last three months of the current year.
$ year=`date +%Y`; for month in {10..12}; do cal $month $year; done
The script below loops through all the months of the year.
$ for month in `locale mon | sed 's/;/ /g'`; do echo $month; done January February March April May June July August September October November December
Using while loops
While loops keep looping as long as the condition that they’re set up to monitor is true. Here’s an example:
#!/bin/bash n=1 while [ $n -le 4 ] do echo $n ((n++)) done
The script above increments and displays the value of $n as long as it’s less than or equal to 4. You can get a while loop to run forever (i.e., until the system crashes, you log out, or someone kills your script) using “while true” as shown below. The sleep command ensures that it doesn’t run thousands of times before you have a chance to stop it.
#!/bin/bash while true do echo -n "Still running at " date sleep 10 done
The script below will run as long as the user who it’s waiting for has not yet logged into the system. This can be helpful when you’re waiting for a co-worker to address a problem before you can move ahead with your task. It checks once a minute to see if the user has logged in yet.