持续创作,加速成长!这是我参与「掘金日新计划 · 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中也存在break
和continue
关键字,这里的用法与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关键字。
如果对本篇文章对你有所帮助,可以点赞收藏评论支持一下我;如果有所疑问,欢迎私信~
如果对这个专栏感兴趣可以点一个关注呦~