bash shell基本语法之循环示例

前言

bash shell中循环语句的写法有:for-in、for-i、while、until;

循环中断控制符有:break、continue

循环语句示例

for-in

#! /bin/bash

for num in 1 22 14 55
do
        echo $num
done
echo "1 2 3 4 5 loop output"
for num in `seq 5`
do
        echo $num
done
echo "charactor string"
for str in hello world "hello, world"
do
        echo $str
done

执行结果:

p.s. :for-in适合遍历数组,注意数组字面量的话,不需要括号,以空格分隔,如果是字符串的,做为单独的一个值,中间有空格,注意用引号括起来。

for-i

其它语言,诸如c/java中for(i=0;;)之类 的循环,语法上稍有不同,示例如下:

#! /bin/bash
for ((i=0; i<3; i++))
do
        echo $i
done

执行结果:

while

while循环语句的终止表达式可以使用逻辑表达式:bash shell基本语法之逻辑表达式

#! /bin/bash
#遍历当前目录,找到while.sh文件则结束遍历或全部遍历完毕,最后输出当前目录下的所有文件
files=(`ls`)
index=0
file="null"
while [[ -n $file && $file != "while.sh" ]]
do
        file=${files[$index]}
        echo $file
        let index++
done
echo "all file: ${files[*]}"

执行结果:

p.s. 其它while很简单,格式就是:

while expression

do

    ....

done

until

while的循环条件是:当满足这个条件时,一直循环直到不满足条件结束或跳出循环,而until是刚好相反,当不满足这个条件时,一直循环,直到满足这个条件:

#! /bin/bash

i=0
until [ $i -gt 5 ]
do
	echo $i
	let i++
done

执行结果:

循环中断控制

和c语言语义上一样,break用于跳出当前循环,continue开始下轮循环,也就是说,continue后面的命令不再执行。

#! /bin/bash

for i in `seq 10`
do
	echo "$i"
	# 如果i == 3,跳出循环
	[[ $i -eq 3 ]] && echo "i=3,break" && break
done
echo "循环结束,i的值是$i"
for i in `seq 5`
do
	# 如果 i == 2,不打印
	[[ $i -eq 2 ]] && echo "i=2, do not print" && continue
	echo "$i"
done

执行结果:

发布了136 篇原创文章 · 获赞 81 · 访问量 18万+

猜你喜欢

转载自blog.csdn.net/x763795151/article/details/97182679