shell 循环控制 —while/until循环/exit/break/continue语句

1、while循环

语法:

 while [   条件判断式   ]

do

  程序

done

例如1:1到100的和

gjl@gjl-virtual-machine:~/shellTest$ ./test19.sh
sum=5050
gjl@gjl-virtual-machine:~/shellTest$ cat test19.sh
#!/bin/bash
i=1
s=0
while [ $i -le 100 ]
 do
s=$(($s+$i))
i=$(($i+1))
done
echo "sum=$s"
gjl@gjl-virtual-machine:~/shellTest$

2、until循环

注意事项:until循环和while循环相反,until循环时只要条件判断式不成立,则执行循环程序,一直循环到条件成立

语法:

until [ 条件判断式 ]

do

  程序

done

例如1:求1到100的值

gjl@gjl-virtual-machine:~/shellTest$ ./test20.sh
sum=5050
gjl@gjl-virtual-machine:~/shellTest$ cat test20.sh
#!/bin/bash
i=1
s=0
until [ $i -gt 100 ]
do
  s=$(($s+$i))
  i=$(($i+1))
done
echo "sum=$s"
gjl@gjl-virtual-machine:~/shellTest$ 

3、exit语句

系统exit是指退出当前用户的登录状态。shell脚本中的exit语句是用来退出当前脚本的

语法:

exit  [返回值]

注意事项:如果定义了exit命令后,可以通过$?来查询这个变量。

例如1:判断输入的是否为数字

gjl@gjl-virtual-machine:~/shellTest$ ./test21.sh
please input a number:ade
plsease input a number!!!!
gjl@gjl-virtual-machine:~/shellTest$ echo $?
110
gjl@gjl-virtual-machine:~/shellTest$ 

gjl@gjl-virtual-machine:~/shellTest$ cat test21.sh
#!/bin/bash
read -p "please input a number:" num
y=$( echo $num | sed  s/[0-9]//g)
if  [ -n "$y" ]
then
         echo "plsease input a number!!!!"
         exit 110
else 
  echo $num
fi

4、break语句

当程序执行到break语句时,会结束整个当前循环。例如1:当循环等于4时,跳出循环。输出123

gjl@gjl-virtual-machine:~/shellTest$ ./test22.sh
1
2
3
gjl@gjl-virtual-machine:~/shellTest$ cat test22.sh
#!/bin/bash
for (( i=1;i<=10;i++ ))
do
if [ "$i" -eq 4 ]
 then
  break
fi
echo $i
done
 

gjl@gjl-virtual-machine:~/shellTest$ 

5、continue 语句

continue语句只会结束当前循环

例如1:输出1到10.当等于4时跳出循环

gjl@gjl-virtual-machine:~/shellTest$ ./test22.sh
1
2
3
5
6
7
8
9
10
gjl@gjl-virtual-machine:~/shellTest$ cat test22.sh
#!/bin/bash
for (( i=1;i<=10;i++ ))
do
if [ "$i" -eq 4 ]
 then
  #break
continue
fi
echo $i
done
 

gjl@gjl-virtual-machine:~/shellTest$ 

 

 

shell 循环控制 —while/until循环/exit/break/continue语句

上一篇:Letsencrypt在Ubuntu的实践


下一篇:反向icmp_shell