start page | rating of books | rating of authors | reviews | copyrights

UNIX Power Tools

UNIX Power ToolsSearch this book
Previous: 45.18 Using basename and dirname Chapter 45
Shell Programming for the Initiated
Next: 45.20 Overview: Open Files and File Descriptors
 

45.19 A while Loop with Several Loop Control Commands

Most people think the Bourne shell's while loop ( 44.10 ) looks like this, with a single command controlling the loop:

while 

command

 do      
...whatever
 done

But command can actually be a list of commands. The exit status of the last command controls the loop. This is handy for prompting users and reading answers - when the user types an empty answer, the read command returns "false" and the loop ends:

while echo "Enter command or CTRL-d to quit: \c"       read command do       
...process 

$command
 done

Here's a loop that runs who and does a quick search on its output. If the grep returns non-zero status (because it doesn't find $who in $tempfile ), the loop quits - otherwise, the loop does lots of processing:

while     who > $tempfile     grep "$who" $tempfile >/dev/null  do     
...process $tempfile...
 done

- JP


Previous: 45.18 Using basename and dirname UNIX Power Tools Next: 45.20 Overview: Open Files and File Descriptors
45.18 Using basename and dirname Book Index 45.20 Overview: Open Files and File Descriptors

The UNIX CD Bookshelf Navigation The UNIX CD BookshelfUNIX Power ToolsUNIX in a NutshellLearning the vi Editorsed & awkLearning the Korn ShellLearning the UNIX Operating System