Linux Shell编程4

来源:互联网 发布:java面试项目介绍 编辑:程序博客网 时间:2024/06/03 18:57
Linux Shell编程42011-07-19 18:24For循环for…in…do…doneIn后面的变量时迭代变量,每次执行时迭代变量都会选用表达式list中的列出的不同单词。for循环结构与C语言中有所不同,在BASH中for循环的基本结构是:for var in [list]do#code blockdone其中$var是循环控制变量,[list]是var需要遍历的一个集合,do/done对包含了循环体,相当于C语言中的一对大括号。另外如果do和for被写在同一行,必须在do前面加上“;”。如:for $var in [list]; do例1:#!/bin/bashfordayin Sun Mon Tue Wed Thu Fri Satdoecho $daydone例2:如果列表被包含在一对双引号中,则被认为是一个元素#!/bin/bashfordayin "Sun Mon Tue Wed Thu Fri Sat“doecho $daydone例3:#!/bin/bashfor FILE in $*doif[ -e $FILE ]thenchmod 600 $FILEelseecho “The file $FILE does not exist.”fidone产生迭代列表的常用工具for i in $*脚本的命令行参数for I in /etc/*.conf与表达式/etc/*.conf相配的文件for I in $(command)command命令的输出例4:#!/bin/bashforDIR in $*doif [ -d $DIR ]thenif [ “$DIR” == “.” –o “$DIR” == “..” ]thenecho “skipping directory $DIR”elsetar czvf $DIR.tgz $DIR && rm –rf $DIRfielseecho “skipping non directory $DIR”fidonewhile循环while循环的基本结构是:while [ condition ]do#code blockdoneuntil循环的基本结构是:until [ condition ]do#code blockdonewhile和until的区别在于while是为真时执行,until是为假时执行Case语句BASH中的case结构与C语言中的switch语句的功能比较类似,可以用于进行多项分支控制。case "$var" incondition1 );;condition2 );;* )default statments;;esac例1:#!/bin/bashecho "Hit a key, then hit return."read Keypress//read内置命令可以从键盘(“标准输入“)读取输入case "$Keypress" in[A-Z] ) echo " Uppercase letter";;[a-z] ) echo " Lowercase letter";;[0-9] ) echo "Digit";;* ) echo "Punctuation, whitespace, or other";;esac


原创粉丝点击