Chinaunix首页 | 论坛 | 博客
  • 博客访问: 47896
  • 博文数量: 11
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 75
  • 用 户 组: 普通用户
  • 注册时间: 2013-05-08 12:36
文章分类

全部博文(11)

文章存档

2014年(3)

2013年(8)

我的朋友

分类: LINUX

2013-05-16 18:03:04

一、case多分支语句:相比于if的多分支语句,更多的是使用case语句
 case $num in
 1)
  block;;  #  程序块后面的;; 不可缺少 也不能是单个的(;)
 2)
  block;;
 3)
  block;;
 ...
 ...
 ...
 ...
 *)
  block;;  # *是除了以上没有的匹配的  相当于default
 esac
 例如
  #!/bin/sh
  read num
  case $num in
  1)
       echo "this is 1";;
  2)
       echo "this is 2";;
  3)
       echo "this is 3";;
  *)
       echo "please enter 1 2 3";;
  esac
 运行结果:自己动手丰衣足食
二、循环控制语句:
 1、for 循环
  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
 #!/bin/sh
 for day in 1 2 3 4 5
 do
  echo $day
 done
 注意 在for 所在的行有变量day 没有加$的,而在循环体内,echo所在行变量$day是必须加上$的
 例如:  输出1-30之间被3整除的数
  #!/bin/sh
  for i in `seq 30`
  do
   if [ $((i%3)) -eq 0 ]
   then
           echo $i
   fi
  done
  运行结果:自己动手验证
 2、while 循环: 个人理解啊 while循环等同于 for循迹
  while 循环
  while 循环的基本条件是:
  while [ condition ]
  do
   #code block
  done
  例子:
   #!/bin/sh
   i=1
   while [ $i -lt 30 ]
   do
           if [ $((i%5)) -eq 0 ]
          then
                  echo $i
          fi
          i=$((i+1))            
          #i=`expr $i + 1` #这条语句和上条语句是一样的功能 但是这条语句执行起来
   done     #比较慢 建议用上条语句
  运行结果: 5
    10
    15
    20
    25
 3、until 循环: until 和 while用法是一样的  只是until的逻辑和while的逻辑是相反的
  until [ condition ]
  do
   #code block
  done
      while和until的主要区别在于while是为真时执行,而until是为假时执行
  这里就不在举例子了  实际应用中也很少用到until语句


  
 

 

阅读(1337) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~