一、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

Shell脚本特殊命令与多重循环_文件读取

Shell脚本特殊命令与多重循环_循环语句_02

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

Shell脚本特殊命令与多重循环_bash_03

Shell脚本特殊命令与多重循环_文件读取_04##

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

Shell脚本特殊命令与多重循环_文件读取_05

Shell脚本特殊命令与多重循环_bash_06

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

Shell脚本特殊命令与多重循环_循环语句_07

Shell脚本特殊命令与多重循环_bash_08

continue与break的区别在于,continue是停止取值范围内的循环命令,不会如break一样停止整个循环

四、补充

1.IFE

Shell脚本特殊命令与多重循环_文件读取_09 

for循环默认取值是通过(空格,换行,制表符)

先制作一个文件包含多个用户

Shell脚本特殊命令与多重循环_bash_10

编写脚本

#!/bin/bash
IFS_OLD=$IFS
IFS=$'\n'
for name in $(cat /jiaobenXunHuan/users)
do
echo $name
done
IFS=$IFS_OLD

Shell脚本特殊命令与多重循环_循环语句_11

Shell脚本特殊命令与多重循环_bash_12

2.使用while读取

Shell脚本特殊命令与多重循环_bash_13

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

Shell脚本特殊命令与多重循环_循环语句_14