一、循环语句之until循环概述
until在条件不成立时执行循环体,条件为真时,循环结束
1.格式
until [ 条件表达式 ] do done
二、抓阄脚本
1.业务需求
1. 执行脚本时,输入学生的英文名字,产生1-99之间的数字,数字越大的就去参加。前面如果出现过这个数字,下次就不能在去出现。不能出现相同的数字
2. 输入完名称之后,屏幕上方输出你的名字和数字
3. 脚本是无限循环 要有退出的命令
4. 退出之后显示出数字最高的三位同学
2.脚本代码
[root@xian /server/scripts]# cat chouqian.sh #!/bin/bash # File Name: chouqian.sh # Author: lixian ####################### >name.txt until ! true do #产生随机数 Ran=$(( $RANDOM % 99 + 1 )) Pd=$(grep -w "$Ran" name.txt) if [ $? -eq 0 ];then continue fi read -p " 请输入想要吃羊腿的名字: " Name if [ $Name == "gun" ];then break fi Rename=$(grep -w "$Name" name.txt) if [ $? -eq 0 ];then echo "你已经重复输入了这个名字,换个名字吧!" continue fi echo "${Name} : ${Ran}" echo "${Name}:${Ran}" >>name.txt done echo "下面请这三位同学去吃羊腿:" cat name.txt |sort -t ":" -nrk2 |head -n3
3.执行结果
[root@xian /server/scripts]# sh chouqian.sh 请输入想要吃羊腿的名字: lx lx : 86 请输入想要吃羊腿的名字: lx 你已经重复输入了这个名字,换个名字吧! 请输入想要吃羊腿的名字: jyc jyc : 63 请输入想要吃羊腿的名字: hj hj : 52 请输入想要吃羊腿的名字: xbj xbj : 7 请输入想要吃羊腿的名字: tbq tbq : 92 请输入想要吃羊腿的名字: lf lf : 38 请输入想要吃羊腿的名字: hb hb : 91 请输入想要吃羊腿的名字: djs djs : 29 请输入想要吃羊腿的名字: gun 下面请这三位同学去吃羊腿: tbq:92 hb:91 lx:86
三、打印99乘法表
1.使用until循环
[root@xian /server/scripts]# cat until-99.sh #!/bin/bash # File Name: 99.sh # Author: lixian ####################### a=1 until ! [ $a -le 9 ] do for b in $(seq 1 $a) do echo -en "${b}x$a=$(($a*$b))\t" done let a++ let b++ echo "" done [root@xian /server/scripts]# sh until-99.sh 1x1=1 1x2=2 2x2=4 1x3=3 2x3=6 3x3=9 1x4=4 2x4=8 3x4=12 4x4=16 1x5=5 2x5=10 3x5=15 4x5=20 5x5=25 1x6=6 2x6=12 3x6=18 4x6=24 5x6=30 6x6=36 1x7=7 2x7=14 3x7=21 4x7=28 5x7=35 6x7=42 7x7=49 1x8=8 2x8=16 3x8=24 4x8=32 5x8=40 6x8=48 7x8=56 8x8=64 1x9=9 2x9=18 3x9=27 4x9=36 5x9=45 6x9=54 7x9=63 8x9=72 9x9=81
2.使用for循环
[root@xian /server/scripts]# cat 99.sh #!/bin/bash # File Name: 99.sh # Author: lixian ####################### for a in {1..9} do for b in $(seq 1 $a) do echo -en "${b}x$a=$(($a*$b))\t" done echo "" done [root@xian /server/scripts]# sh 99.sh 1x1=1 1x2=2 2x2=4 1x3=3 2x3=6 3x3=9 1x4=4 2x4=8 3x4=12 4x4=16 1x5=5 2x5=10 3x5=15 4x5=20 5x5=25 1x6=6 2x6=12 3x6=18 4x6=24 5x6=30 6x6=36 1x7=7 2x7=14 3x7=21 4x7=28 5x7=35 6x7=42 7x7=49 1x8=8 2x8=16 3x8=24 4x8=32 5x8=40 6x8=48 7x8=56 8x8=64 1x9=9 2x9=18 3x9=27 4x9=36 5x9=45 6x9=54 7x9=63 8x9=72 9x9=81
四、内置跳出循环的指令
1. exit 退出整个脚本程序
2. break 结束当前循环, 跳出这个循环
3. continue 结束本次循环,继续执行下一次循环