(5)select語句
select語句是pdksh提供的一個獨特的循環(huán)語句.他不同于前面介紹的循環(huán)語句.他不是
反復計算一個條件表達式,并依據表達式的值決定是否執(zhí)行一組命令.select的功能是自動的
生成一個簡單的文本菜單.
語法格式:
select menu [in list_of_items]
do
commands
done
含義:當執(zhí)行一個select語句時,pdksh分別為每個列在list_of_items中的成員建立一個菜單
選項.list_of_items既可以是一個包含多個選項的變量,也可以是直接列在程序中的一組選項
.如果語句中沒有提供list_of_items,select語句將使用位置變量作為list_of_items.
舉例:
select menuitem in pick1 pick2 pick3
do
echo "are you sure you want to pick $menuitem"
read res ;接收用戶的輸入,并且將輸入的值存放在特定變量里.
if [ $res=" y" -o $res=" Y"]
then
break ;用于退出while,for,select等循環(huán)語句
fi
done
(6)repeat語句
repeat語句是tcsh提供的獨有的循環(huán)語句.使用repeat命令要求shell對一個命令執(zhí)行一定
的次數.
語法格式:
repeat count command
如;
foreach num ( $ *)
repeat $num echo -n " *"
echo " "
end
7.shell中的函數
shell允許用戶定義自己的函數.函數是高級語言中的重要結構.shell中的函數于C或者其他
語言中定義的函數一樣.與從頭開始,一行一行地寫程序相比,使用函數主要好處是有利于組織
整個程序.在bash中,一個函數的語法格式如下:
fname (){
shell comands
}
定義好函數后,需要在程序中調用他們.bash中調用函數的格式:
fname [parm1 parm2 parm3...]
調用函數時,可以向函數傳遞任意多個參數.函數將這些參數看做是存放他的命令行參數的
位置變量.
舉例:
這個程序定義了4個函數:
upper ():將傳遞給他的文件中的字母轉換成大寫,并存放到同名的結尾為.out的文件中.
lower ():將傳遞給他的文件里的字母轉換成小寫,并存放到同名的結尾為.out的文件中.
print ():輸出傳遞給他的文件的內容.
usage_error ():輸出程序的幫助信息.
程序的主模塊是個case條件語句,他根據命令行中第一個參數,決定程序要完成的功能,并調用相應
的函數完成這一功能.
upper (){
shift
for i
do
tr a-a A-Z<$!>$1.out
rm $1
mv $1.out $1
shift
done; }
lower () {
shift
for i
do
tr A-Z a-z<$1>$1.out
rm $1
mv $1.out $1
shift
done; }
print() {
shift
for i
do
lpr $1
shift
done; }
usage_error() {
echo " $1 syntax is $1<option><input files>"
echo ""
echo " where option is one of the following"
echo " p--to print frame files"
echo " u--to save as uppercase"
echo " l--to save as lowercase";}
case $1 in
p | -p)print $@;;
u | -u)upper $@;;
l | -l)lower $@;;
*) usage_error $0;;
esac
------------------------------------------------------------------------------