while循环的一般格式如下:
while [Gondition ]
do
Instruction
done
在while循环中,必须放入一个导致结果为真或假的变量或表达式,而在while循环体中则可以放人任意多的指令。
declare raining ="1” while["$raining" -eq "1"〕 do echo "Still raining." done
#!/bin/bash declare flag ="1" while ["$flag" -eq "1"] do clear echo "" echo "The Telephone Book" echo "" echo "1.Display A Telephone Number" echo "2. Add A New Telephone Number" echo "" echo "Q Quit" echo " " echo "Enter your selection:" echo "" read selection case $selection in "1") #Run the subprogram to display a phone number getnum ;; "2") #Run the subprogram to add a mew phone number addnum ;; "q") $flag="0" ;; "Q") $flag="0" ;; *) echo "You made an irnalid selection,下ry again." esac done
declare counter =0 while ["$counter" -lt 1000] do let $counter="$counter+1" done在这个例子中,程序首先给变量counter赋值为0,然后就进人while循环。循环体中惟一一条指令的作用就是给计数器(counter)的值加1,并将新值重新赋给计数器变量(counter)。while循环一直记数到变量counter的值达到999为止--这时,程序将退出while循环。
declare raining="0" while ["$raining -eq "1"] do echo "Still raining" clear在这个例子中,程序根本不显示任何信息,因为$raining的值不是1,程序跳过while循环.
declare raining="1" while ["$raining -eq "1"] do echo "Still raining" clear没有一个程序员愿意在程序中放人一个死循环。为避免这种情况的出现,必须确保while循环体中至少有一个指令。可以修改while循环条件中所用的真值或假值。
declare raining="1" while ["$raining -eq "1"] do let $raning="0" clear