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$