9.11 Repeating a Command with a foreach Loop
When some people need to repeat a command on several files, the first thing they think of is C shell history (11.5 ) :
That kind of thing can be easier with the C shell's foreach loop. (In the Bourne and Korn shells, use a for (9.12 ) loop.) You give the loop a list of the words that will change each time the command line is run. In this example, it's a list of filenames. The loop will step through the words, one by one, storing a word into a shell variable (6.8 ) , then running the command(s). The loop goes on until it has read all the words. For example:
The question marks (
The list between the parentheses doesn't have to be filenames.
Among other things, you can use
and the C shell's handy
curly brace (
If you want the loop to stop before or after running each command, add the C
The loop parameters don't need to be filenames. For instance, you could send a personalized mail (1.33 ) message to five people this way: 
The first line of the first letter will be "Dear John,"; the second letter "Dear Cathy,"; and so on.
Want to take this idea further? It's a part of shell programming (44.1 ) . I usually don't recommend (47.2 ) shell programming with the C shell, but this is a handy technique to use interactively.