【前端&运维那点事儿】十一:Shell编程之循环语句

996 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第12天,点击查看活动详情

Hi~,我是一碗周,如果写的文章有幸可以得到你的青睐,万分有幸~

🍇 写在前面

先来介绍一下新开的这个专栏:《前端&运维那点事儿》将会从前端的角度,依次学习Linux→Nginx→Docker→持续集成→k8s,从而打造一个属于站在前端角度的运维专栏。

在这篇文章中我们将来学习一下Shell中的循环语句,包括如下内容:

  • for循环
  • while循环
  • until循环
  • select in循环
  • break和continue关键字

🥝 for循环

Shell中的for循环有两种写法,第一种就是我们熟知的类似于js中的for循环,示例如下:

for((i=1; i<=10; i++));  
do   
   echo $(($i));
done 

下面这个例子中我们计算了1到100的和,代码如下:

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

第二种写法的语法如下:

for 变量 in 值1 值2 值3
do
代码块
done

这种写法的变量用空格的方式拆分,例如我们现在需要打印该目录的文件,示例代码如下:

#!/bin/bash
for file in $(ls)
do
    echo $file
done

这里我们使用$()ls命令的结果作为该循环的变量,然后依次打印这些变量。

🫐 while循环

如果我们不确定循环次数,可以选择使用while循环,语法如下:

while [条件判断式]
do
 代码块
done

下面这个例子我们使用while循环来计算1到100的和,示例如下:

#!/bin/bash
i=0
sum=0
while (( i<=100 ))
do
    ((sum+=i))
    ((i++))
done
echo $sum

🍐 break和continue关键字

shell中也存在breakcontinue关键字,这里的用法与js中一致,下面的例子中只展示了break的用法,示例代码如下:

#!/bin/bash
i=0
sum=0
while (( 1 ))
do
    ((sum+=i))
    ((i++))
    if (( i>100 ))
    then
        break          # 当i大于100是进入该if语句,并跳出循环
    fi
done
echo $sum

🍓 until循环

until循环与while循环正好相反,它的语法与while循环一致,不同的是只有条件不成立时才会进入循环,成立时结束循环,使用until循环计算1到100的和的例子如下:

#!/bin/bash
i=0
sum=0
until (( i>100 ))
do
    ((sum+=i))
    ((i++))
done
echo $sum

🍒 select in循环

select in循环是shell中独有的一种循环,该循环的主要作用是增强交互性,它可以显示出带编号的菜单,用户输入不同的编号就可以选择不同的菜单,并执行不同的功能。

语法如下:

select 变量 in 值1 值2 值3
do
代码块
done

执行该循环时会进入一个命令行交互系统,如果提示#?,它的作用就是可以让我们输入编号,输入的编号就对应了这个变量的值,如果想要结束该循环可以按下【Ctrl+D】退出交互模式,或者在代码中执行break语句。

select in循环通常和case语句一起使用,关于case语句的内容,可以参考我的上一篇文章。

下面的例子展示select in循环的用法:

#!/bin/bash

echo "请选择该作品的评分"
select value in "优秀" "良好" "一般" "差劲"
do
    case $value in
    "优秀")
        echo '你对该作品的评分为优秀'
        break
        ;;
    "良好")
        echo '你对该作品的评分为良好'
        break
        ;;
    "一般")
        echo '你对该作品的评分为一般'
        break
        ;;
    "差劲")
        echo '你对该作品的评分为差劲'
        break
        ;;
    *)
        echo '选择错误 请重新选择'
        ;;
    esac
done

可以将该脚本复制到命令行中体验效果。

🍑 写在最后

本篇文章到这就结束了,这篇文章中介绍了Shell中四种循环语句以及break和continue关键字。

如果对本篇文章对你有所帮助,可以点赞收藏评论支持一下我;如果有所疑问,欢迎私信~

如果对这个专栏感兴趣可以点一个关注呦~