4、shell编程之流程控制

流程控制

if、case、for、while

1、if判断

  • 基本语法:

if [条件判断式]; then

程序

fi

或者

if [条件判断式]; then

程序

elif[条件判断式]

程序

fi

注意事项:(1)、条件判断式中,中括号和判断式执行必须有空格

                  (2)、推荐使用第二种方式

  • 实例:

编写shell程序,如果输入的参数大于等于60,则输出“及格了”,如果小于60,则输出“不及格”

#!/bin/bash

if [ $1 -ge 60 ]

then

echo "及格了"

elif [ $1 -lt 60 ]

echo "不及格"

fi

 

2、case语句

  • 基本语法:

case $变量名 in “值1”)

如果变量的值等于值1,则执行程序1

;;

“值2”)

如果变量的值等于值1,则执行程序2

;;

...省略其他分支

*)

如果变量的值都不是以上的值,则执行此程序

;;

esac

 

  • 实例:当命令行参数是1时,输出“周一”,是2时,输出“周二”,其他情况输出“other”

#!/bin/bash

case $1 in

"1")

echo "周一"

;;

"2")

echo "周二"

;;

*)

echo "other"

;;

esca

 

3、for循环

  • 基本语法1:

for 变量 in 值1 值2 值3

do

程序

done

  • 实例:打印命令行输入的参数(使用$*或$@)

#!/bin/bash

#第一种方式使用$*

for i in "$*"

do

echo “the num is $i”

done

./test.sh 10 20 30

输出the num is 10 20 30

#第二种方式使用$@

for j in "$@"

do

echo “the num is $j”

done

./test.sh 10 20 30

输出:the num is 10

the num is 20

the num is 30

 

  • 基本语法2:

for ((初始值;循环控制条件;变量变化))

do

程序

done

  • 实例:

从1加到100的值输出显示

#!/bin/bash

for ((i=1;i<=100;i++))

do

SUM=$[$SUM+$i]

done

echo "sum=$SUM"

 

 

4、while循环

  • 基本语法1:

while [条件判断式]

do

程序

done

  • 实例:从命令行输入一个数n,统计从1+...+n的值是多少

#!/bin/bash

SUM=0

i=0

while [ $i -le $1 ]

do

i=$[$SUM+$i]

i=$[$i+1]

done

echo "sum=$SUM"

 

 

 

 

 

 

 

 

 

 

 

 

 

 

上一篇:001猴子的信念


下一篇:作为试验一份