272309182001osU
ix
我们利用这点写了一个名为smartzip的脚本,该脚本可以自动解压bzip2gzip和zip类型的压缩文件:
bi
sh
ftypefile“1″Note‘a
disdiffere
tcase“ftype”i
“1Ziparchive”u
zip“1″“1gzipcompressed”gu
zip“1″“1bzip2compressed”bu
zip2“1″echo“File1ca
otbeu
compressedwithsmartzip”esac
你可能注意到上面使用了一个特殊变量1,该变量包含有传递给该脚本的第一个参数值。也就是说,当我们运行:
smartziparticleszip
1就是字符串articleszip。
select语句
select表达式是bash的一种扩展应用,擅长于交互式场合。用户可以从一组不同的值中进行选择:
fselectvari
…dobreakdo
e…
owvarca
beused…
下面是一个简单的示例:
bi
sh
echo“WhatisyourfavouriteOS”selectvari
“Li
ux”“G
uHurd”“FreeBSD”“Other”dobreakdo
eecho“Youhaveselectedvar”
如果以上脚本运行出现select:NOTFOUND将bi
sh改为bi
bash该脚本的运行结果如下:
WhatisyourfavouriteOS1Li
ux2G
uHurd3FreeBSD4Other1YouhaveselectedLi
ux
whilefor循环
在shell中,可以使用如下循环:
while…do…do
e
只要测试表达式条件为真,则while循环将一直运行。关键字”break”用来跳出循环,而关键字”co
ti
ue”则可以跳过一个循环的余下部分,直接跳到下一次循环中。
for循环会查看一个字符串列表(字符串用空格分隔),并将其赋给一个变量:
forvari
…do…do
e
f下面的示例会把ABC分别打印到屏幕上:
bi
sh
forvari
ABCdoecho“varisvar”do
e
下面是一个实用的脚本showrpm,其功能是打印一些RPM包的统计信息:
bi
sh
listaco
te
tsummaryofa
umberofRPMpackagesUSAGEshowrpmrpmfile1rpmfile2…EXAMPLEshowrpmcdromRedHatRPMSrpmforrpmpackagei
doifr