Linux Shell编程4

Linux Shell编程4
2011-07-19 18:24

For循环for…in…do…done

In后面的变量时迭代变量,每次执行时迭代变量都会选用表达式list中的列出的不同单词。for循环结构与C语言中有所不同,在BASH中for循环的基本结构是:

for var in [list]

do

#code block

done

其中$var是循环控制变量,[list]是var需要遍历的一个集合,do/done对包含了循环体,相当于C语言中的一对大括号。另外如果do和for被写在同一行,必须在do前面加上“;”。如:for $var in [list]; do

例1:

#!/bin/bash

fordayin Sun Mon Tue Wed Thu Fri Sat

do

echo $day

done

例2:如果列表被包含在一对双引号中,则被认为是一个元素

#!/bin/bash

fordayin "Sun Mon Tue Wed Thu Fri Sat“

do

echo $day

done

例3:

#!/bin/bash

for FILE in $*

do

if[ -e $FILE ]

then

chmod 600 $FILE

else

echo “The file $FILE does not exist.”

fi

done

产生迭代列表的常用工具

for i in $*
	

脚本的命令行参数

for I in /etc/*.conf
	

与表达式/etc/*.conf相配的文件

for I in $(command)
	

command命令的输出

例4:

#!/bin/bash

forDIR in $*

do

if [ -d $DIR ]

then

if [ “$DIR” == “.” –o “$DIR” == “..” ]

then

echo “skipping directory $DIR”

else

tar czvf $DIR.tgz $DIR && rm –rf $DIR

fi

else

echo “skipping non directory $DIR”

fi

done

while循环while循环的基本结构是:

while [ condition ]

do

#code block

done

until循环的基本结构是:

until [ condition ]

do

#code block

done

while和until的区别在于while是为真时执行,until是为假时执行

Case语句

BASH中的case结构与C语言中的switch语句的功能比较类似,可以用于进行多项分支控制。

case "$var" in

condition1 )

;;

condition2 )

;;

* )

default statments;;

esac

例1:

#!/bin/bash

echo "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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值