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