Linux Shell之循环

下面介绍几种shell相关循环命令:

1)for
列表是一组值(数组、字符串等)组成的序列,每个值通过空格分隔。每循环一次,就将列表中的下一个值赋给变量。
in列表是可选的,如果不用它,for循环使用命令行的位置参数

for 变量 in 列表
do
	command1
	command2
	...
	commandN
done

2)while
while循环用于不断执行一系列命令,也用于从输入文件中读取数据;命令通常为测试条件,其格式为:

while command
do
	语句
done

3)until
until循环执行一系列命令直至条件为true时停止。until循环与while循环在处理方式上刚好相反,command一般为条件表达式,如果返回值为false,则继续执行循环体内的语句,否则跳出循环:

until command
do
	语句
done

4)break
break命令允许跳出所有循环(终止执行后面的所有循环)
在嵌套循环中,break命令后面还可以跟一个整数,表示跳出第几层循环,例如:

break n #n表示跳出第n层循环

嵌套循环break的例子,如果var1等于2,并且var2等0,就跳出循环:

#!/bin/bash
for var1 in 1 2 3
do 
	for var 2 in 0 5
		do
			if [ $var1 -eq 2 -a $var2 -eq 0 ]
			then
				break 2
			else
				echo "$var1 $var2"
			fi
		done
	done

5)continue
continue命令与break命令类似,只有一点差别,它不会跳出所有循环,仅仅跳出当前循环:

#!/bin/bash
while:
do
	echo -n "Input a number between 1 to 5:"
	read aNum
	case $aNum in
	1|2|3|4|5)
		echo "Your number is $aNum!"
		;;
	*)
		echo "You do not select a number between 1 to 5!"
		continue
		;;
	esac
done

同样,continue后面也可以跟一个数字,表示跳出第几层循环。

猜你喜欢

转载自blog.csdn.net/qq_32403063/article/details/89552317