select var in "Linux" "Gnu Hurd" "Free BSD" "Other"; do
break
done
echo "You have selected $var"
下面是該腳本運行的結(jié)果:
What is your favourite OS?
1) Linux
2) Gnu Hurd
3) Free BSD
4) Other
#? 1
You have selected Linux
4.loop
loop表達(dá)式:
while ...; do
....
done
while-loop 將運行直到表達(dá)式測試為真。will run while the expression that we test for is true. 關(guān)鍵字"break" 用來跳出循環(huán)。而關(guān)鍵字”continue”用來不執(zhí)行余下的部分而直接跳到下一個循環(huán)。
for-loop表達(dá)式查看一個字符串列表 (字符串用空格分隔) 然后將其賦給一個變量:
for var in ....; do
....
done
在下面的例子中,將分別打印ABC到屏幕上:
#!/bin/sh
for var in A B C ; do
echo "var is $var"
done
下面是一個更為有用的腳本showrpm,其功能是打印一些RPM包的統(tǒng)計信息:
#!/bin/sh
# list a content summary of a number of RPM packages
for 循環(huán)結(jié)構(gòu)與 C 語言中有所不同,在 BASH 中 for 循環(huán)的基本結(jié)構(gòu)是:
for $var in [list] do #code block done
其中 $var 是循環(huán)控制變量,[list] 是 var 需要遍歷的一個集合,do/done 對包含了循環(huán)體,相當(dāng)于 C 語言中的一對大括號。另外如果do 和 for 被寫在同一行,必須在 do 前面加上 ";"。如: for $var in [list]; do 。下面是一個運用 for 進(jìn)行循環(huán)的例子:
#!/bin/bash
for day in Sun Mon Tue Wed Thu Fri Sat do echo $day done
# 如果列表被包含在一對雙引號中,則被認(rèn)為是一個元素 for day in "Sun Mon Tue Wed Thu Fri Sat" do echo $day done
exit 0
注意上面的例子中,在 for 所在那行的變量 day 是沒有加 "$" 符號的,而在循環(huán)體內(nèi),echo 所在行變量 $day 是必須加上 "$" 符號的。另外如果寫成 for day 而沒有后面的 in [list] 部分,則 day 將取遍命令行的所有參數(shù)。如這個程序: