当前位置:网站首页>shell编程基础(第9篇:循环)
shell编程基础(第9篇:循环)
2022-07-05 18:58:00 【叫我王员外就行】
前言
在生活中我们总会做重复的事情,程序中使用循环模拟做重复的事情,任何语言都有循环语句,在shell编程中,支持3种循环的语法,分别是while、for、for in!
while的两种语法
1、放在同一行
while condition; do
command
done
while与do放在同一行,使用;隔开,while每次会判断condition的退出状态码,如果为0,则执行循环体的代码
2、不放在同一行
while condition
do
command
done
while与do不在同一行,此时不需要;
单行写法
while true; do echo 'hello world'; done
使用;隔开即可
只判断退出状态码
while true; do
echo 'hello world';
done
由于true这个命令的退出状态码永远为0,所以循环将一直进行下去。只要有退出状态码的命令都可以放在while的后面,它们可以是
1、函数
2、一个命令
3、另一个脚本程序
等等,只要有退出状态码,则可作为条件
多个条件,只认最后一个条件
while true; false; do
echo 'hello world';
done
同一行,只认最后一个条件的退出状态码
while总结
1、几乎与if的标准一样,条件就是退出状态码,所以test命令也经常作为条件来使用
2、while的使用率还挺多的,请学会它吧
for in语法
1、放在同一行
for item in hello world; do
echo $item
done
2、不放在同一行
for item in hello world
do
echo $item
done
列表
在for in语法中,in后面跟着是列表,且列表以空白字符(空格、换行、制表、任意字符)分隔的单词组成的列表,循环中,列表中的单词会一个一个被遍历,所以我们经常可以利用命令替换的返回值,进行遍历,比如遍历当前工作目录下的每一个文件
for file in $(ls);do
echo $file
done
写在一行
for item in hello world;do echo $item; done
利用文件名替换
for i in *.png; do
echo $i
done
for in总结
1、记住一条,in后面的是由空白字符分隔的单词列表(注意:IFS可以修改默认的分隔符)
for语法
类C语言的创新是计算机高级语言的鼻祖,shell编程同样也学习C语言的for语法
for (( i=0; i<5; i=i+1 )); do
echo $i
done
语法呢,双括号,哈哈,躲不掉!!在双圆括号中,访问变量值,连美元符都可以省去了!!
无限循环
for ((;;))
do
echo hello world
sleep 5
done
最后的总结
1、shell编程中,支持while、for in、for,3种循环方式
2、其实还有另外一种until,由于不常用,本文不再提及
3、无论什么语言,遵守其标准语法,学习起来事半功倍!!!!
边栏推荐
猜你喜欢
Windows Oracle open remote connection Windows Server Oracle open remote connection
Analysis of postman core functions - parameterization and test report
Why can't Bi software do correlation analysis? Take you to analyze
企业数字化转型之路,从这里开始
UDF implementation of Dameng database
Summary of six points of MySQL optimization
Benefits of automated testing
Go deep into the underlying C source code and explain the core design principles of redis
Ant group open source trusted privacy computing framework "argot": open and universal
在线协作产品哪家强?微软 Loop 、Notion、FlowUs
随机推荐
JS解力扣每日一题(十二)——556. 下一个更大元素 III(2022-7-3)
2022 latest Android interview written examination, an Android programmer's interview experience
UDF implementation of Dameng database
2022最新大厂Android面试真题解析,Android开发必会技术
Chinese postman? Really powerful!
The era of Web3.0 is coming. See how Tianyi cloud storage resources revitalize the system to enable new infrastructure (Part 2)
MySql中的longtext字段的返回问题及解决
详解SQL中Groupings Sets 语句的功能和底层实现逻辑
R语言可视化散点图(scatter plot)图、为图中的部分数据点添加标签、始终显示所有标签,即使它们有太多重叠、ggrepel包来帮忙
Video fusion cloud platform easycvr adds multi-level grouping, which can flexibly manage access devices
Ten years at sea: old and new relay, dark horse rising
2022 the most complete Tencent background automation testing and continuous deployment practice in the whole network [10000 words]
彻底理解为什么网络 I/O 会被阻塞?
#夏日挑战赛# HarmonyOS - 实现消息通知功能
The worse the AI performance, the higher the bonus? Doctor of New York University offered a reward for the task of making the big model perform poorly
如何实现游戏中的在线计时器和离线计时器
手把手教你处理 JS 逆向之图片伪装
Can Leica capture the high-end market offered by Huawei for Xiaomi 12s?
Startup and shutdown of CDB instances
14、用户、组和权限(14)