您的位置:首页 > 运维架构 > Shell

3、shellwhile循环,C-for循环,until循环,case分支结构,流程控制语句

2016-06-05 19:00 916 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  shell while 循环