(2)case語(yǔ)句
case語(yǔ)句要求shell將一個(gè)字符串S與一組字符串模式P1,P2,...,Pn比較,當(dāng)S與
某個(gè)模式Pi想匹配時(shí),就執(zhí)行相應(yīng)的那一部分程序/命令.shell的case語(yǔ)句中字符
模式里可以包含象*這樣的通配符.
語(yǔ)法格式:
bash/pdksh用法:
case string1 in
str1)
commands1;;
str2)
commands2;;
*)
commands3;;
esac
tcsh用法:
switch (string1)
case str1:
statements1
breaksw
case str2:
statements2
breaksw
default:
statements3
breaksw
endsw
含義:shell將字符串string1分別和字符串模式str1和str2比較.如果string1與str1匹配,則
shell執(zhí)行commands1的命令/語(yǔ)句;如果string11和str2匹配,則shell執(zhí)行commands2的命令/
語(yǔ)句.否則shell將執(zhí)行commands3的那段程序/命令.其中,每個(gè)分支的程序/命令都要以兩個(gè)
分號(hào)(;;)結(jié)束.
6.循環(huán)語(yǔ)句
當(dāng)需要重復(fù)的某些操作時(shí),就要用到循環(huán)語(yǔ)句.
(1)for語(yǔ)句
大家知道在很多編程語(yǔ)言中for語(yǔ)句是最常見.在shell中也不例外.for語(yǔ)句要求shell將包含
在這個(gè)語(yǔ)句中的一組命令連續(xù)執(zhí)行一定的次數(shù).
語(yǔ)法格式:
bash/pdksh
用法1:
for var1 in list
do
commands
done
含義:在這個(gè)for語(yǔ)句中,對(duì)應(yīng)于list中的每個(gè)值,shell將執(zhí)行一次commands代表的一組命令.
在整個(gè)循環(huán)的每一次執(zhí)行中,變量var1將依此取list中的不同的值.
用法2:
for var1
do
setatements
done
含義:在這個(gè)for語(yǔ)句中,shell針對(duì)變量var1中的每一項(xiàng)分別執(zhí)行一次statements代表的一組
命令.當(dāng)使用這種形式的語(yǔ)句時(shí),shell認(rèn)為var1變量中包含了所有的位置變量,而位置變量中
存放著程序的命令行參數(shù)值.也就是說(shuō),他等價(jià)于下列形式:
for var1 in " $@"
do
statements
done
tcsh用法:
在tcsh中沒有for這個(gè)單詞,與for語(yǔ)句起同樣功能的是foreach語(yǔ)句
foreach name (list)
commands
end
舉例:
for file ;bash/pdksh
do
tr a-z A-Z<$file>file.caps
done
# ;tcsh
foreach file ( $ * )
tr a-z A-Z<$file>$file.caps
end
聯(lián)系客服