细讲shell中的循环语句--for语句

news2025/1/20 3:41:39

目录

一:何为循环

1.循环概述

2.使用循环的好处

二:for循环语句

1.for语句的用法

​2. 语法结构

(1)一般格式

 (2)类C语言格式

(3)死循环

 3.事例

​4.常用转义符

5.制作九九乘法表

 三:跳出循环

1.coontinue跳出循环

2. coontinue 2  

 3.break跳出循环

 4.break 2

 总结:编写脚本的思路


一:何为循环

1.循环概述

循环是一种控制流程的结构,用于重复执行一段代码。

遍历是一种数据操作的过程,用于访间并处理数据结构中的每个元素。

在某些情况下,循环和遍历可以结合使用,以便在循环中遍历数据结构并对其进行操作。

循环(Loop)    是计算机编程中非常重要的一种结构,其主要目的是为了简化代码编写。

提高代码的重复利用率,以及提高程序的效率。

2.使用循环的好处

重复执行代码:通过使用循环,可以在程序中重复执行一段代码,从而避免代码的重复编写, 减少程序代码量,提高程序的可读性和可维护性。

简化程序逻辑:使用循环可以使程序逻辑更加简洁明了,提高程序的可读性和可理解性。降低代码出错的可能性。

 提高代码的重复利用率:通过将重复的代码封装在循环结构中,可以提高代码的重复利用率,减少代码冗余。

提高程序的效率:循环可以让程序自动化地执行重复任务,从而减少人工干预的次数,提高程序的效率和性能。

二:for循环语句

1.for语句的用法

读取不同的变量值,用来逐个执行同一组命令

for循环经常使用在已经zhidao要进行多少次循环的场景

格式:
for 变量名 in 取值列表
do
命令序列
done

2. 语法结构

(1)一般格式

 (2)类C语言格式

for ((expr1;expr2;expr3))
do
 echo
done

(3)死循环

for ((;;))

 3.事例

(1)批量创建用户,用户名存放在users.txt文件中,每一个初始密码为123456。

 (2)根据ip地址检测主机状态,IP地址存放在ipadds.txt文件中,每行一个,使用ping命令检测各主机的联通性,ping通的ip地址放到/opt/hosts文件中

 4.常用转义符

echo -n 表示不换行输出

echo -e 输出转义字符,将转义后的内容输出到屏幕上

常用的转义字符如下:
\b 转义后相当于按退格键(backspace),但前提是"\b"后面存在字符;"\b"表示删除前一个字符,"\b\b"表示删除前两个字符。

\c 不换行输出,在"\c"后面不存在字符的情况下,作用相当于 echo -n; 但是当"\c"后面仍然存在字符时,"\c"后面的字符将不会被输出。

\n 换行,被输出的字符从"\n"处开始另起一行。

\f 换行,但是换行后的新行的开头位置连接着上一行的行尾;

\v 与\f相同;

\t 转以后表示插入tab,即横向制表符;

\r 光标移至行首,但不换行,相当于使用"\r"以后的字符覆盖"\r"之前同等长度的字符;但是当"\r"后面不存在任何字符时,"\r"前面的字符不会被覆盖

\\ 表示插入"\"本身;

5.制作九九乘法表

(1)制作长方形图表

 (2)制作等腰三角形图表

(3)制作九九乘法表

脚本解释:for i in {1..9}设置的是循环9次,

j<=i 表示的是在每次$i循环时$j小于等于$i,大于$i的$j不显示出来

j++是一个后缀自增运算符,表示将变量i的值加1,并返回原始值。

 (4)制作倒的九九乘法表

 三:跳出循环

1.coontinue跳出循环

表示满足continue条件是跳出循环,但是不影响后续循环执行

它的作用是在循环内部跳过本次循环并继续下一次循环

2. coontinue 2  

continue 2会跳过当前循环和两层外层循环的迭代

 3.break跳出循环

在循环内部,当执行到 break 命令时,会立即跳出当前的循环,停止循环执行,然后继续执行下一条指令。
可以使用 break 命令来提前终止循环,例如当达到特定条件时或者已经执行了足够的次数。

 4.break 2

break 2 会跳出当前循环和外层循环的迭代

 总结:编写脚本的思路

1.首先明确脚本的功能
   1.1案例:需求是创建用户并测试用户20个 
                 ->那肯定要用循环for、 while
                 ->知道需求含义来定义脚本的功能
   
2.编写脚本时会使用到哪些命令?
   2.1如上面的需求:就要使用useradd  passwd  let  echo  for  while 等命令

3.把变化的数据使用变量表示【记得要先定义哦】
   3.1固定长的定义变量、经常调用的参数可设变量
   3.2变化的定义变量

4.选择适合的流程控制
4.1【循环语句、双分支、多分支、case等一些控制语句 】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/469339.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

旧照片修复-模糊图片变清晰-2023年度最强神器 codeformer

CodeFormer是一种基于AI技术深度学习的人脸复原模型&#xff0c;由南洋理工大学和商汤科技联合研究中心联合开发。该模型通过结合了VQGAN和Transformer等技术&#xff0c;可以通过提供模糊或马赛克图像来生成清晰的原始图像。 功能&#xff1a; 1、老照片修复 2、黑白照片彩色…

LeetCode 2641 二叉树的堂兄弟节点 II

LeetCode 2641 二叉树的堂兄弟节点 II 给你一棵二叉树的根 root &#xff0c;请你将每个节点的值替换成该节点的所有 堂兄弟节点值的和 。 如果两个节点在树中有相同的深度且它们的父节点不同&#xff0c;那么它们互为 堂兄弟 。 请你返回修改值之后&#xff0c;树的根 root …

【Auto-GPT云部署】

部署自己的Auto-Gpt 先说说什么是Chat-Gpt Chat-GPT (Generative Pretrained Transformer)是由OpenAI提出的一种自然语言处理技术&#xff0c;是基于Transformers和预训练机制的大规模语言模型。与传统的基于规则或基于统计的自然语言处理方法不同&#xff0c;Chat-GPT使用深…

【网络抓包工具】tcpdump 最新版本移植到开发板(海思平台)

目录 一、概述 二、libpcap、tcpdump源码下载 三、libpcap、tcpdump交叉编译  &#x1f449;3.1 交叉编译 libpcap  &#x1f449;3.2 交叉编译 tcpdump 一、概述 tcpdump是一个功能强大的&#xff0c;用于抓取网络数据包的命令行工具&#xff0c;与带界面的Wireshark一样&am…

CLion开发工具 | 02 - 常用功能配置介绍

专栏介绍 配置项概览 CLion有非常多的配置项&#xff0c;本文将列举一些常用的配置项。 一、外观配置 1. 主题 2. 新UI 新的UI有点VScode化&#xff0c;个人不太喜欢&#xff0c;还是老的这套UI香&#xff0c;所以未开启&#xff1a; 3. 环境变量 IDE除了导入系统/用户的…

应急管理指挥中心大数据信息化管控平台建设方案(ppt可编辑)

本资料来源公开网络&#xff0c;仅供个人学习&#xff0c;请勿商用&#xff0c;如有侵权请联系删除 篇幅有限&#xff0c;无法完全展示&#xff0c;喜欢资料可转发评论&#xff0c;私信了解更多信息。

力扣刷题2023-04-27-1——题目:1329. 将矩阵按对角线排序

题目&#xff1a; 矩阵对角线 是一条从矩阵最上面行或者最左侧列中的某个元素开始的对角线&#xff0c;沿右下方向一直到矩阵末尾的元素。例如&#xff0c;矩阵 mat 有 6 行 3 列&#xff0c;从 mat[2][0] 开始的 矩阵对角线 将会经过 mat[2][0]、mat[3][1] 和 mat[4][2] 。 …

宝塔防火墙拦截页面代码模板2

宝塔防火墙拦截页面代码模板2 防火墙代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1"><title>云防御<…

最优化方法Python计算:一元函数搜索算法——黄金分割法

黄金分割法是包围策略的经典用例。算法思路为&#xff1a;假定目标函数 f ( x ) f(x) f(x)最优解 x 0 x_0 x0​含于长度为 λ \lambda λ的区间 ( a 0 , b 0 ) (a_0,b_0) (a0​,b0​)内。在区间内插入两个备选点 a 1 ′ , b 1 ′ ∈ ( a 0 , b 0 ) a_1,b_1\in(a_0,b_0) a1′​,…

【网络编程】网络基础

目录 一、协议分层 1、为什么要分层 2、OSI七层模型 3、TCP/IP四层协议&#xff08;五层协议&#xff09; 二、网络传输流程 1、同一个网段内的两台主机进行文件传输 2、跨网段的主机的文件传输 三、IP地址和MAC地址 1、IP地址 2、MAC地址 网络通信的本质就是跨主机的…

Python 输出日志 print 函数的应用(python专栏001)

在Python中&#xff0c;print()函数是一个用于输出内容到标准输出设备的函数&#xff0c;通常用于调试程序和显示程序运行结果 直接使用如下&#xff1a; print(5) print("早起的年轻人")print()函数可以接受多个参数&#xff0c;将它们用空格隔开&#xff0c;并输…

Docker CE介绍和CentOS7.5.1804离线安装Docker CE

文章目录 Docker CE介绍离线安装问题离线安装步骤Docker CE 的优点 Docker CE介绍 Docker CE&#xff08;CE&#xff0c;Community Edition是社区版本的意思&#xff09;是一个免费、开源的应用容器化平台&#xff0c;可帮助开发人员将应用程序打包成容器&#xff0c;并在任何…

【小白入门Linux】—目录结构介绍(一)

【小白入门Linux】—目录结构介绍&#xff08;一&#xff09; linux的方向&#xff1a; linux运维 linux嵌入式开发 在linux下做各种程序开发 应用领域 个人桌面领域 服务器领域&#xff08;java c程序部署到linux服务器&#xff09; 嵌入式&#xff08;运行稳定&#x…

GRE-MGRE综合实验

拓扑结构&#xff1a; 要求 1、R5为网络运营商&#xff08;ISP&#xff09;&#xff0c;接口IP地址均为公有地址&#xff1b; 2、R1与R5间使用PPP的PAP认证&#xff0c;R5为主认证方&#xff1b;R2与R5间使用PPP的chap认证&#xff0c;R5为主认证方&#xff1b;R3与R5间使用HD…

操作系统进程线程(一)—进程线程协程区别、多进程多线程、进程调度算法、进程线程通信

进程线程协程区别 定义上 进程&#xff1a;资源分配和拥有的基本单位&#xff0c;是调度的基本单位。运行一个可执行程序会创建一个或者多个进程&#xff1b;进程就是运行起来的程序线程&#xff1a;程序执行基本单位&#xff0c;轻量级进程。每个进程中都有唯一的主线程&…

React之Redux的使用

文章目录 Redux 介绍概述Redux 是什么&#xff1f;为什么要使用 Redux&#xff1f;我什么时候应该使用 Redux&#xff1f;Redux 库和工具React-ReduxRedux ToolkitRedux DevTools 扩展 Redux 术语和概念State 管理不可变性 Immutability术语ActionAction CreatorReducerReducer…

ChatGPT会一直火热下去吗?他会是下一个AR,区块链吗?

目录 前言 VR 热潮 区块链热潮 元宇宙热潮 ChatGPT 热潮 理智看待 ChatGPT 前言 如果在今年年底评选 2023 年的年度科技热词&#xff0c;以 ChatGPT 目前的热度&#xff0c;毫无疑问会是今年排名第一的科技热词。 即使今年才过去四个月&#xff0c;但我很难想象还有什么科…

JUC多并发编程 ThreadLocal

ThreadLocal 提供线程局部变量。这些变量与正常的变量不同, 因为每一个线程在访问 ThreadLocal 实例的时候(通过其 get 或 set 方法) 都有自己的&#xff0c;独立初始化的变量副本。ThreadLocal 实例通常是类中的私有静态字段, 使用它的目的是希望将状态(例如, 用户ID或事务ID)…

【OJ比赛日历】快周末了,不来一场比赛吗? #04.29-05.05 #16场

CompHub 实时聚合多平台的数据类(Kaggle、天池…)和OJ类(Leetcode、牛客…&#xff09;比赛。本账号同时会推送最新的比赛消息&#xff0c;欢迎关注&#xff01; 更多比赛信息见 CompHub主页 或 点击文末阅读原文 以下信息仅供参考&#xff0c;以比赛官网为准 目录 2023-04-29&…

SQL学习日记

目录 一、数据定义&#xff08;create&#xff0c;alter&#xff0c;drop&#xff09; 1.1数据类型 1.2定义基本表&#xff08;create&#xff0c;alter&#xff0c;drop&#xff09; 1.3约束 1.3.1主键约束 1.3.2外码约束 ​编辑 补充CASCADE 关键字 1.3.3Check约束 …