Chinaunix首页 | 论坛 | 博客
  • 博客访问: 410337
  • 博文数量: 47
  • 博客积分: 1488
  • 博客等级: 上尉
  • 技术积分: 729
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-15 11:35
文章分类

全部博文(47)

文章存档

2012年(4)

2011年(22)

2010年(21)

分类: Python/Ruby

2011-02-28 14:34:01


shell 控制流可以概括为 分支控制和循环控制。

一、 分支控制
分支控制有两种形式, 一是if, then, else, 二是 case, in.
1. if...then...else

语法:
if 条件1
then
   命令列表1
elif 条件2
then
   命令列表2
else
   命令列表3
fi

这里的条件可以是...中所述的条件测试,也可以是执行一条命令,此时使用命令执行结果作为条件

2. case...in
该类型分支控制是一种模式匹配,也可以用于值匹配

语法:
case 值 in
   模式1 )
      命令列表1
      break
      ;;
   模式2 )
      命令列表2
      break
      ;;
   * )
      命令列表3
      break
      ;;
esac

模式中的元字符:
* : 任意字符
? : 任意单个字符
[..] : 字符集

注意,这里是模式匹配,不是字符串,因此模式不要加引号
举例:

echo -n "Do you want to continue? [y..n]"
read ANSWER
case $ANSWER in
   y|Y|yes|Yes)
      echo "you selected yes"
      break
      ;;
   n|N|no|No)
      echo "you selected no"
      break
      ;;
   *)
      echo "unknown selection"
      break
      ;;
esac

二、循环控制
循环控制有 for, until, while 三种循环控制
1. for 循环控制
  一般格式:
  for 变量 in 取值列表
  do
     命令列表1
  done
 
  如果不带in列表,默认从命令行参数中取值

2. until 循环控制
  用于执行直到满足条件才停止循环的场合
  一般格式:
  until 条件
  do
     命令列表
  done
    
3. while 循环控制
  while 与until恰好相反,当条件为真时,一直执行循环
 
在case分支控制,和循环控制中还可以使用 break, continue 改变控制
阅读(2301) | 评论(0) | 转发(0) |
0

上一篇:shell 条件测试

下一篇:多进程还是多线程

给主人留下些什么吧!~~