当前位置:网站首页>shell编程基础(第9篇:循环)
shell编程基础(第9篇:循环)
2022-07-05 18:58:00 【叫我王员外就行】
前言
在生活中我们总会做重复的事情,程序中使用循环模拟做重复的事情,任何语言都有循环语句,在shell编程中,支持3种循环的语法,分别是while、for、for in!
while的两种语法
1、放在同一行
while condition; do
command
donewhile与do放在同一行,使用;隔开,while每次会判断condition的退出状态码,如果为0,则执行循环体的代码
2、不放在同一行
while condition
do
command
donewhile与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
donefor 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、无论什么语言,遵守其标准语法,学习起来事半功倍!!!!
边栏推荐
- Redhat7.4 configure Yum software warehouse (rhel7.4)
- Web3.0时代来了,看天翼云存储资源盘活系统如何赋能新基建(下)
- 块编辑器如何选择?印象笔记 Verse、Notion、FlowUs
- Advanced application of C # language
- Decision tree and random forest
- Debezium系列之:postgresql从偏移量加载正确的最后一次提交 LSN
- AI open2022 | overview of recommendation systems based on heterogeneous information networks: concepts, methods, applications and resources
- Oracle 中文排序 Oracle 中文字段排序
- Fuzor 2020软件安装包下载及安装教程
- 面试官:Redis 过期删除策略和内存淘汰策略有什么区别?
猜你喜欢
MySql中的longtext字段的返回问题及解决

Word查找红色文字 Word查找颜色字体 Word查找突出格式文本

Technology sharing | interface testing value and system

5. Data access - entityframework integration

一朵云开启智慧交通新未来

14、用户、组和权限(14)
Django使用mysqlclient服务连接并写入数据库的操作过程

如何快速进阶自动化测试?听听这3位BAT大厂测试工程师的切身感想....

Mariadb root用户及普通用户的密码 重置

Ten years at sea: old and new relay, dark horse rising
随机推荐
R language uses lubridate package to process date and time data
5. Data access - entityframework integration
Word查找红色文字 Word查找颜色字体 Word查找突出格式文本
Fuzor 2020 software installation package download and installation tutorial
The road of enterprise digital transformation starts from here
China law network joins hands to observe the cloud, and the online system is a full link observable platform
Ten years at sea: old and new relay, dark horse rising
企业级数据安全,天翼云是这样理解的
基于FPGA的超声波测距
Tutoriel de téléchargement et d'installation du progiciel fuzor 2020
开源 SPL 消灭数以万计的数据库中间表
golang通过指针for...range实现切片中元素的值的更改
手机开户选择哪家券商公司比较好哪家平台更安全
2022 Alibaba Android advanced interview questions sharing, 2022 Alibaba hand Taobao Android interview questions
Fuzor 2020软件安装包下载及安装教程
Redhat7.4 configure Yum software warehouse (rhel7.4)
潘多拉 IOT 开发板学习(HAL 库)—— 实验8 定时器中断实验(学习笔记)
Go语言学习教程(十五)
一朵云开启智慧交通新未来
The easycvr authorization expiration page cannot be logged in. How to solve it?