shell编程-循环语句
课程目录循环语句for的用法循环语句while的用法循环控制语句
3循环语句for当循环次数已知或确定时,使用for循环语句来多次执行一条或一组命令。循环体由语句括号do和done来限定。格式为: for变量名in单词表do命令表done变量依次取单词表中的各个单词,每取一次单词,就执行一次循环体中的命令.循环次数由单词表中的单词数确定.命令表中的命令可以是一条,也可以是由分号或换行符分开的多条。如果单词表是命令行上的所有位置参数时,可以在for语句中省略“in单词表”部分。
4实例#Thestatementoffor…do…doneif[!-d$HOME/backup]then mkdir$HOME/backupfiflist=`ls`forfilein$flistdo if[$#=1] then if[$1=$file] then echo$filefound;exit fi else cp$file$HOME/backup echo$filecopied fidoneecho***BackupCompleted***flist的值是ls的执行结果即当前目录下的文件名命令行上有一个参数时命令行上不带参数时实例:程序prog5.sh拷贝当前目录下的所有文件到backup子目录下.使用语法为:./prog5.sh[filename]
5循环语句while语法结构为:while命令或表达式do命令表donewhile语句首先测试其后的命令或表达式的值,如果为真,就执行一次循环体中的命令,然后再测试该命令或表达式的值,执行循环体,直到该命令或表达式为假时退出循环。while语句的退出状态为命令表中被执行的最后一条命令的退出状态。
6实例创建文件程序prog6,批量生成空白文件,用法为:prog6file[number]./a.shfile6#Thestatementforwhileif[$#=2]then loop=$2else loop=5fii=1while[$i-lt$loop]do $1$i i=`expr$i+1`done建立以第一个参数指定的文件名前缀,例如以“file”开头,变量i的值结尾的空文件名.参见命令cmdfile根据命令行的第二个参数来确定循环的次数
7循环控制语句break和continue breakn则跳出n层; continue语句则马上转到最近一层循环语句的下一轮循环上, continuen则转到最近n层循环语句的下一轮循环上.实例.程序prog7的用法为:prog7整数整数整数…参数个数不确定,范围为1~10个,每个参数都是正整数。
8实例if[$#=0]then echoNumericargumentsrequired exitfiif[$#-gt10]then echoOnlytenargumentsallowed exitfifornumberdo count=`expr$number%2` if[$count-eq1] then continue else output=$output$number fidoneechoEvennumbers:$output取所有位置参数用2求模,count的值只能是0或1下轮循环是奇数偶数放到偶数队列中