一、exit、break、continue
1.exit
用于退出脚本进程。
2.break
用于跳出单(n)层循环。
3.continue
用于终止某次循环中的操作,但是不会完全终止整个循环。
二、多重循环
如果循环语句的循环体中又出现循环语句,就构成多重循环结构。一般常用的有二重循环和三重循环。
三、示例
1.双重循环
#!/bin/bash
a=1
while [ $a -le 5 ]
do
b=1
echo "外部循环:a=$a"
while [ $b -le 5 ]
do
echo " 内部循环:b=$b"
let b++
done
let a++
done
2.加入exit
#!/bin/bash
for ((a=1; a<=5; a++))
do
echo "外部循环:a=$a"
for ((b=1; b<=5; b++))
do
echo " 内部循环: b=$b"
if [ $b -eq 3 ]
then
exit
fi
done
done
##
3.加入break
#!/bin/bash
for ((a=1; a<=5; a++))
do
echo "外部循环:a=$a"
for ((b=1; b<=5; b++))
do
echo " 内部循环:b=$b"
if [ $b -eq 3 ]
then
break
fi
done
done
break后面不加数字,默认跳出当前循环。加数字几,就跳出几层循环。
4.加入continue
#!/bin/bash
a=1
while [ $a -le 5 ]
do
b=0
echo "外部循环:a=$a"
while [ $b -lt 5 ]
do
let b++
if [ $b -ge 2 ] && [ $b -le 4 ]
then
continue
fi
echo " 内不循环:b=$b"
done
let a++
done
continue与break的区别在于,continue是停止取值范围内的循环命令,不会如break一样停止整个循环
四、补充
1.IFE
for循环默认取值是通过(空格,换行,制表符)
先制作一个文件包含多个用户
编写脚本
#!/bin/bash
IFS_OLD=$IFS
IFS=$'\n'
for name in $(cat /jiaobenXunHuan/users)
do
echo $name
done
IFS=$IFS_OLD
2.使用while读取
2.1.分隔文件读取
将文件分隔,每五十行存入一个新文件(多出的不满五十也算一个文件)。
#!/bin/bash
a=0
num=1
cat WuShi | while read i
do
let a++
b=$[$a % 50]
if [ $b -eq 0 ]
then
echo $i >> /jiaobenXunHuan/WuShi$num
let num++
else
echo $i >> /jiaobenXunHuan/WuShi$num
fi
done