Shell脚本之for循坏语句

2023-11-04

目录

一、for循环语句

1.1.列表循环

1.2.不带列表循环

1.3.类C风格的for循环

1.4.for循环案列

二、总结


一、for循环语句

语法结构

  • 列表循环
  • 不带列表循环
  • 类c风格的for循环

1.1.列表循环

(1)格式1

for 变量名 in {list}
do
    command
done

案例1:

案例2:

​ 

案例3:

​ 

案例4:

(2)格式2

for 变量名 in a b c
do
    command
done

案例1:

(3)案例

①:打印1-5这五个数字

​  

②:打印五次hello world

注意:虽然我们定义了一个变量i,但是没有使用它,它只是控制循环次数。

​ 

 ③:打印abcde

​ 

④: 输出0-50之间的偶数。

​ 

⑤: 花括号{}和seq在for循环的应用

for i in {1..50..2} 1-50的奇数
 
for i in {2..50..2}          1-50的偶数
 
for i in {10..1}              1-10倒序排列
 
for i in $(seq 10)         1-10正序排列
 
for i in $(seq 10 -1 1)  1-10倒序排列
 
for i in $(seq 1 2 10)   1-10的奇数,中间为步长
 
for i in $(seq 0 2 10)   1-10的偶数,中间为步长

1.2.不带列表循环

(1)格式

for 变量名 
do
   command
done

2)案例

打印hello

第一种:

1.3.类C风格的for循环

(1)格式

for ((expr1;expr2;expr3))
do
    command
done
 
expr1:定义变量并赋初值
expr2:决定是否循环
expr3:决定循环变量如何改变,决定循环什么时候退出

(2)案例

①:打印1-5

 

 

注:i++ : i=1+1 先赋值再运算 i=1 之后 再 +1 

       ++i : 1+1=i 先运算再赋值 1+1 之后 再=i

②:打印1-10的奇数

 

1.4.for循环案列

例1、批量添加用户

 

批量删除用户的脚本

 

例2:根据 IP 地址列表检查主机状态

-c 发送包的数量;-i 发送 ping 包间隔;-W 超时时间

 

 

例3:用户输入密码,脚本判断密码是否正确,输入正确提示正确信息,连续输错3次则报警。

 

 例4:判断超市10次抽奖,六个人能中奖几次

 

例5:打印九九乘法表

二、总结

在生产环境中,总是需要shell脚本来帮助我们执行一些特定的任务,以上就是shell脚本中for循环的一些简单案例,希望能帮助到小白。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Shell脚本之for循坏语句 的相关文章

  • 如何使用 GOPATH 的 Samba 服务器位置?

    我正在尝试将 GOPATH 设置为共享网络文件夹 当我进入 export GOPATH smb path to shared folder I get go GOPATH entry is relative must be absolute
  • 如何更改 Apache 服务器的根目录? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如何更改 Apache 服务器的文档根目录 我基本上想要localhost从 来 users spencer projects目录而不是
  • 内核模式下的线程(和进程)与用户模式下的线程(和进程)有什么区别?

    我的问题 1 书中现代操作系统 它说线程和进程可以处于内核模式或用户模式 但没有明确说明它们之间有什么区别 2 为什么内核态线程和进程的切换比用户态线程和进程的切换花费更多 3 现在 我正在学习Linux 我想知道如何在LINUX系统中分别
  • 如何在 Bash 中给定超时后终止子进程?

    我有一个 bash 脚本 它启动一个子进程 该进程时不时地崩溃 实际上是挂起 而且没有明显的原因 闭源 所以我对此无能为力 因此 我希望能够在给定的时间内启动此进程 如果在给定的时间内没有成功返回 则将其终止 有没有simple and r
  • 我不明白 execlp() 在 Linux 中如何工作

    过去两天我一直在试图理解execlp 系统调用 但我还在这里 让我直奔主题 The man pageexeclp 将系统调用声明为int execlp const char file const char arg 与描述 execl exe
  • “make install”将库安装在 /usr/lib 而不是 /usr/lib64

    我正在尝试在 64 位 CentOS 7 2 上构建并安装一个库 为了这个目的我正在跑步 cmake DCMAKE BUILD TYPE Release DCMAKE INSTALL PREFIX usr DCMAKE C COMPILER
  • Linux:如何设置进程的时区?

    我需要设置在 Linux 机器上启动的各个进程的时区 我尝试设置TZ变量 在本地上下文中 但它不起作用 有没有一种方法可以使用与系统日期不同的系统日期从命令行运行应用程序 这可能听起来很愚蠢 但我需要一种sandbox系统日期将被更改的地方
  • 快速像素绘图库

    我的应用程序以每像素的方式生成 动画 因此我需要有效地绘制它们 我尝试过不同的策略 库 但结果并不令人满意 尤其是在更高分辨率的情况下 这是我尝试过的 SDL 好的 但是慢 OpenGL 像素操作效率低下 xlib 更好 但仍然太慢 svg
  • 如何在c linux中收听特定接口上的广播?

    我目前可以通过执行以下操作来收听我编写的简单广播服务器 仅广播 hello int fd socket PF INET SOCK DGRAM 0 struct sockaddr in addr memset addr 0 sizeof ad
  • Windows CE 与嵌入式 Linux [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 现在我确信我们都清楚 Linux 与 Windows 桌面的相对优点 然而 我对嵌入式开发世界的了解却少得多 我主要对行业解决方案感兴
  • 高效的内存屏障

    我有一个多线程应用程序 其中每个线程都有一个整数类型的变量 这些变量在程序执行期间递增 在代码中的某些点 线程将其计数变量与其他线程的计数变量进行比较 现在 我们知道在多核上运行的线程可能会无序执行 一个线程可能无法读取其他线程的预期计数器
  • 在 Mac OSX 上交叉编译 x86_64-unknown-linux-gnu 失败

    我尝试将我的 Rust 项目之一编译到 x86 64 unknown linux gnu 目标 cargo build target x86 64 unknown linux gnu Compiling deployer v0 1 0 fi
  • 为什么C Clock()返回0

    我有这样的事情 clock t start end start clock something else end clock printf nClock cycles are d d n start end 我总是得到输出 时钟周期是 0
  • 在 unix 中编译 dhrystone 时出错

    我是使用基准测试和 makefile 的新手 我已经从下面的链接下载了 Dhrystone 基准测试 我正在尝试编译它 但我遇到了奇怪的错误 我尝试解决它 但没有成功 有人可以帮助我运行 dhrystone 基准测试吗 以下是我尝试编译的两
  • Awk - 计算两个文件之间的每个唯一值和匹配值

    我有两个文件 首先 我尝试获取第 4 列中每个唯一字段的计数 然后匹配第二个文件的第二列中的唯一字段值 File1 第 4 列的每个唯一值和 File2 第 2 列包含我需要在两个文件之间匹配的值 所以本质上 我试图 gt 如果 file2
  • vagrant ssh -c 并在连接关闭后保持后台进程运行

    我正在编写一个脚本来启动和后台流浪机器内的进程 似乎每次脚本结束和 ssh 会话结束时 后台进程也会结束 这是我正在运行的命令 vagrant ssh c cd vagrant src nohup python hello py gt he
  • 嵌入式linux编写AT命令

    我在向 GSM 模块写入 AT 命令时遇到问题 当我使用 minicom b 115200 D dev ttySP0 term vt100 时它工作完美 但我不知道如何在 C 代码中做同样的事情 我没有收到任何错误 但模块对命令没有反应 有
  • 捕获数据包后会发生什么?

    我一直在阅读关于网卡捕获数据包后会发生什么的内容 我读得越多 我就越困惑 首先 我读过传统上 在网卡捕获数据包后 它会被复制到内核空间中的一个内存块 然后复制到用户空间 供随后处理数据包数据的任何应用程序使用 然后我读到了 DMA 其中 N
  • 无法在 64 位 Linux 上从汇编 (yasm) 代码调用 C 标准库函数

    我有一个函数foo以汇编语言编写 并在 Linux Ubuntu 64 位上使用 yasm 和 GCC 编译 它只是使用以下命令将消息打印到标准输出puts 如下所示 bits 64 extern puts global foo secti
  • linux下写入后崩溃

    如果我使用 write 将一些数据写入磁盘上的文件会发生什么 但我的应用程序在刷新之前崩溃了 如果没有系统故障 是否可以保证我的数据最终会刷新到磁盘 如果您正在使用write 并不是fwrite or std ostream write 那

随机推荐

  • Vue Excel文件的下载和上传(formData)

    Vue Excel文件的下载和上传 formData 在本文中传给后台的数据为FormData 首先介绍Excel文件的上传和下载代码 HTML代码 其中引用了Element UI的button
  • 人工智能——衣服分类(大作业必备)

    官方网站 大作业系列传送门 文本分类 模仿VGG16的衣服分类 导入数据 指定名称 观察里面图片 预处理 建立模型 编译模型 开始训练 绘制曲线 模型评估 图形测试定义 验证结果 预测多张结果 预测单张结果 导入数据 tf keras da
  • laravel-admin整合wangEditor2及上传图片

    小伙伴说MD编辑器不好用 因为复制粘贴不方便 所以我换了一个编辑器整合 选择了老朋友wangEditor 下面为大家介绍怎么在laravel v6 9 laravel admin v1 7 wangEditor2的情况下上传图片 第一步 c
  • android sdk配置图文教程

    首先配置 java sdk 下载java sdk java sdk也有很多版本 问清项目版本 下载相对应的 然后配置环境变量 下图是我电脑下载的版本 下载好就就是配置环境变量了 配置java sdk 环境变量 右击我的电脑 属性 高级系统设
  • VUE element-ui 之table表格导出Excel功能封装(纯前端实现)

    需求 导出当前页面所有数据 步骤 下载所需依赖 npm install save xlsx file saver 引入依赖 这里我进行了封装 由于很多页面都需要导出excel功能 js文件中引入依赖 进行导出方法封装 import File
  • 简单的jsp+servlet+jdbc+mysql实现用户增删改查-一抹茶-csdn

    jsp servlet jdbc mysql实现用户增删改查 项目下载地址 里面包含了项目文件 jar bootstrap jquery sql 也可以联系957406675 QQ群获取下载 运行环境 jdk1 8 0 102 eclips
  • 操作系统课程设计 - 多线程模拟 - 时间片轮转法实现处理机调度

    此篇博客用于记录学习历程 仅供交流参考 一 课程设计题目及内容 题目 设计一个按照时间片轮转法实现处理机调度的程序 时间片轮转法实现处理机调度的程序设计提示如下 1 假设系统有n个进程 每个进程用一个进程控制块 PCB 来代表 进程控制块的
  • 如何使用css将多出范围的字变为...

    话不多说 上代码 呈一行效果 width 100px text overflow ellipsis 将文本溢出显示为 white space nowrap 强制显示为一行 overflow hidden 溢出隐藏 呈多行效果 width 1
  • Golang开发项目目录简介以及目录结构设置规范

    一 Golang项目简单介绍 Golang简单的目录结构如下 其中 bin用来存放经过go bulid后的可执行文件 pkg存放编译后的go module 而src就存放我们项目的代码 二 三种常用目录结构 1 适合个人开发者 2 流行的目
  • 大数据组件-kafka(基础篇)

    大数据组件 kafka 基础篇 Kafka简介 Kafka是什么 Kafka的应用场景 Kafka的架构组成 Kafka的主要竞争力 Kafka简介 Kafka是什么 Kafka是一个消息队列 存储消息的队列中间件 可以存储消息进队列中 也
  • 关于CMake生成包含PCL库和CGAL库的工程时出现“无法解析的外部符号”的错误

    前言 博主之前安装了PCL 1 8 0库 教程链接 PCL 1 8 0 AllInOne VS2013 Win8 X64 安装配置及部分问题解决方法 和CGAL库 教程链接 在Win8 VS2013中配置CGAL库 最近需要把两个库用在同一
  • 红球进黑洞【线段树区间更新+二进制异或处理】【牛客小白月赛9-C】

    题目链接 给你N个点 M次查询 问的是 一 区间 l r 的数的总和 二 把区间 l r 上的所有点去异或 xor 一个数X 一开始用了点更新 然后T了 想了一会 最后在比赛结束前终于美滋滋的完成了AC 庆幸 我的想法是这样的 将每个点的值
  • 学习笔记 JavaScript ES6 ES6数组的扩展

    学习内容 类数组 伪数组 Array from Array of copyWithin fill includes 类数组 伪数组 下面这几行代码的返回值就是伪数组 伪数组有索引 且长度是非负的整数 即长度length属性 但是没有数组的方
  • 51单片机学习笔记(二) 单个数码管显示1到9

    转自我的博客 http sincos in p 20 数码管 其实就是8个发光二极管按顺序排列而成的 所以让数码管显示特定的数字 只需要将该亮的二极管点亮 不该亮的灭了就好了 为了达到这个目的 就得参考电路图了 51HEI开发板的电路图在我
  • 腾讯校招编程题之快递分身术

    题目描述 城市里有3000条横向的道路和3000条纵向的道路 分别从1开始编号知道3000 相邻两条平行道路的间距为1 我们用 x y 表示第x号横向道路和第y号纵向道路 N个需要送快递的点坐落在这些交点上 小Q只能沿着这些道路送快递 而且
  • [Unity3D]Lua中使用协程coroutine和计时器timer

    习惯了unity3d的协程用法 那么我们在Unity里面怎么使用 StartCoroutine StopCoroutine WaitForSeconds 首先lua也有coroutine 其实lua中的协程真的是暂停 用法和unity并非相
  • 模型分类model

    模型可以按照多个维度进行分类 以下是常见的几种模型分类方式 1 根据应用领域分类 数学模型 基于数学原理和方程式来描述和解决问题 如微积分模型 线性代数模型等 物理模型 基于物理原理和规律来模拟和解释现象 如力学模型 电路模型等 经济模型
  • D3.js 绘制柱状图

    使用D3 V4版本绘制 使用D3绘制柱状图 绘制效果如下 使用D3绘制柱状图 先对需要绘制的图形拆解 主要分为以下几个部分 1 比例尺的定义 2 坐标轴的绘制 3 添加矩形 4 修改坐标轴样式 5 柱状图装饰效果添加 首先 先定义data
  • Docker存储

    前言 上一篇文章中简单总结了一下docke的基础使用方法 这次我来总结一下有关docker存储方面的相关知识 本文同样建立在CloudMan的系列教程之上 有兴趣的可以直接移步 有些人可能觉得这个很简单 存储就是硬盘嘛 docker容器既然
  • Shell脚本之for循坏语句

    目录 一 for循环语句 1 1 列表循环 1 2 不带列表循环 1 3 类C风格的for循环 1 4 for循环案列 二 总结 一 for循环语句 语法结构 列表循环 不带列表循环 类c风格的for循环 1 1 列表循环 1 格式1 fo