for语句

场景 :有范围数量的循环

格式

for 值 in 列表
do
   执行语句
done

示例

#!/bin/bash
# for 循环语句
for i in $(ls /data/scripts)
do
  echo "/data/scripts 的文件有 ${i}"
done

while 语句

场景:死循环

特点:只要条件成立,就一直循环下去

格式 :

while 条件
do
   执行语句
done

示例:

#!/bin/bash
# while死循环
a=1
while [ ${a} -lt 5 ]
do
  echo "${a}"
  let a=a+1
  sleep 1
done

until语句

场景:死循环,

特点:只要条件不成立,就一直循环下去

格式

until 条件
do
   执行语句
done

示例

#!/bin/bash
# until死循环
a=1
until [ ${a} -eq 5 ]
do
  echo "${a}"
  a=$((a+1))
  sleep 0.5
done

循环退出

退出简介 :在某些循环场景下,我们需要临时跳出循环,做一些其他动作

break : 跳出所有循环

break n : 跳出第n个循环(由内向外)

continue : 跳出当前循环

exit : 退出程序

break示例 跳出所有循环

#!/bin/bash
# break退出演示
# 根据用户输入内容,进行判断,死循环
while :
do
  echo -n "输入您的数字,最好在 1~5 之间:"
  read anum
  case "${anum}" in
    1|2|3|4|5)
      echo "您输入的数字是${anum}"
      ;;
    *)
      echo "您输入的数字不在范围中,我们要终止"
      break
      ;; 
  esac
done

break n示例 : 跳出n层循环

#!/bin/bash
# 退出嵌套循环示例
for var1 in {1..5}
do
  for var2 in {0..4}
  do
    if [ $var1 -eq 3 -a $var2 -eq 2 ] 
    then
      break 2
    else
      echo "$var1 $var2"
    fi
  done
done

continue示例 : 跳出当前匹配到的循环,继续执行下一个循环

#!/bin/bash
# continue退出演示
# 根据用户输入内容,进行判断,死循环
#跳出当前匹配到的循环,继续执行下一个循环
while :
do
  echo -n "输入您的数字,最好在 1~5 之间:"
  read anum
  case "${anum}" in
    1|2|3|4|5)
      echo "您输入的数字是${anum}"
      ;;
    *)
      continue
      echo "您输入的数字不在范围中,我们要终止"
      ;; 
  esac
done

exit示例 退出嵌套循环示例

#!/bin/bash
# 退出嵌套循环示例
for var1 in {1..5}
do
  for var2 in {0..4}
  do
    if [ $var1 -eq 3 -a $var2 -eq 2 ] 
    then
      break 1
    else
      echo "$var1 $var2"
    fi
  done
done

笔记内容。

Last modification:November 4th, 2020 at 11:42 pm
如果觉得我的文章对你有用,请随意赞赏