while 循环结构

while 条件判断表达式

do

条件判断成立时执行的语句块

......

......

done


例:使用while循输出数字1到10(升序输出)

j=1

while [ $j -le 10 ]

do

#useradd wsyht$j

        #userdel -r wsyht$i

echo $j

let j++   #j=j+1

done


C-for循环结构

for((赋初值;条件判断;步长))

do

条件判断成立时执行的操作

......

done


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

do

echo "$i"

sleep 1

done


<=

<

>=

>


until循环结构(条件判断不成立才执行循环体,判断条件成立循环终止)

until 条件判断表达式

do

循环体

.....

done


until [ 1 -eq 1 ]

do

echo "wsyht"

sleep 1

done



true  恒真

false 恒假


#!/bin/bash

#while true

#until false

while :

do

#echo "yht"

#sleep 1

done


: 放在条件表达式的位置表示恒真,放在循环体内表示什么都不做



case 分支结构

根据变量的不同取值分别执行不同的命令

name=yht


case 变量名 in

   模式1)

变量的值与模式1匹配时执行的操作;;

......

   模式2)

变量的值与模式2匹配时执行的操作;;

   ......

   模式3)

变量的值与模式3匹配时执行的操作;;

......

   *)

变量的值与以上所有模式都不匹配时执行的操作;

......

esac


例:

#!/bin/bash

read -p "请输入你选择的字母 A | B | C | D " zimu

case $zimu in

A)

echo "你输入的是字母A";;

B)

echo "你输入的是字母B";;

C)

echo "你输入的是字母C";;

D)

echo "你输入的是字母D";;

*)

echo "$0只能选择A | B | C | D 中的一个"

esac



case通常和函数一起使用用给服务写启动脚本



流程控制语句

break continue操作对像是循环结构


break

  跳出当前所在的循环体


continue

  结束本次循环并开始下一次循环


exit

  退出脚本 默认返回值是0


return

  只给返回值,不会退出,用在函数里,设置函数的返回值


shift(位置移动函数)

  用于迁移位置变量,将$1-$N值依次向左传递,并将没值的变量删除


例1:

$1 $2 $3

10 80 87 shift

80 87    shift

87 shift


例2:例3:

#!/bin/bashi=0

echo $#while [ $# -gt 0 ]

echo $1 $2 $3do

shifti=`expr $i + $1`

echo $#shift

echo $1 $2 $3 done

shiftecho $i

echo $#

echo $1 $2 $3                     


例:

#!/bin/bash

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

do

if [ $i -eq 9 ]

#break

#continue

#exit 2

fi

echo $i

done