Shell脚本(3):循环语句

127 阅读2分钟

一、循环语句概念

循环含义

将某代码段重复运行多次,通常有进入循环的条件和退出循环的条件

重复运行次数

  • 循环次数事先已知 for 已知次数情况下
  • 循环次数事先未知 while 和 until 是已知条件

1.1原理

程序先进行语句判断。 如果判断为真则执行循环语句,然后再进行语句判断,直至语句判断失败才跳出。 如果判断为假,直接跳出,不继续执行。

二、for循环语句

##第一种语法
for i in {词语列表}
do
命令序列
done
 
##第二种语法
for((i=1;i<=100;i++))
do
命令序列
done
 
for((表达式①;表达式②;表达式③))
表达式①:定义变量并赋值
表达式②:决定是否循环
表达式③:决定循环变量如何改变,决定循环什么时候结束

求1-100的和

#!/bin/bash
sum=0
for i in `seq 100`
do
sum=$[i + sum]
done
echo "sum:$sum"
​
[root@hzw ~]# bash qiuhe.sh
sum:5050
​
​

三、while循环

while [ 判断 ]  ##条件成立继续循环,条件不成立,不再循环
do
命令序列
let i++  ##类似的语句
done
#!/bin/bash
i=0
sum=0
while [ $i -le 100 ]
do
let sum+=$i
#防止死循环
let i++ 
done
echo $sum
[root@hzw ~]# bash qiuhe.sh
5050
​
​

四、until循环

 until 条件测试
 do
    command
 done
#!/bin/bash
i=0
sum=0
until [ ${i} -ge 100 ]
do
let sum+=${i}
let i++
done
echo " $sum "
​
[root@hzw ~]# bash qiuhe.sh
5050
​
​

五、退出循环

5.1 exit

当执行 exit 语句后,脚本将立即终止,并且不会再执行后续的代码。

#!/bin/bashwhile true
do
  # 条件判断
  if [ 条件 ]
  then
    exit  # 退出脚本
  fi
  
  # 循环体代码
done

5.2 break

break语句会立即终止最内层的循环,并跳出该循环体执行循环后的代码。

break n 代表跳出n层循环
#n为具体数字
while true
do
  # 条件判断
  if [ 条件 ]
  then
    break  # 退出循环
  fi
  # 循环体代码
done

5.3 continue

continue语句会跳出当前循环,但是不会终止命令。

while true
do
  # 条件判断
  if [ 条件 ]
  then
    continue  # 跳过本次循环迭代,继续下一次迭代
  fi
  # 循环体代码
done