当前位置: 首页 > news >正文

shell脚本三

目录

一、循环语句

一、循环

二、for循环语句

1.列表循环

2.与c语言循环相似的for循环

3.使用for打印三角形以及乘法表

4.测试172.16.114.0网段存活的主机并将存活的主机IP地址写入文件中,未存活的主机放入另一文件中

三、while循环语句

四、until循环语句

总结:本章主要介绍了shell的循环语句和用法


一、循环语句

一、循环

循环含义

将某代码段重复运行多次,通常有进入循环的条件和退出循环的条件

重复运行次数

循环一定要有跳出循环的条件

1.已知循环的次数

2.未知循环的次数但是有一个跳出条件

常见的循环的命令:for, while, until

二、for循环语句

1.列表循环

for [变量名] in {列表}

do 

命令

done

例:

用for循环写出1+2+...+100的和

#!/bin/bash
m=0
for i in {1..100}
do
m=$[m+i]
done
echo $m

2.与c语言循环相似的for循环

例:

用for循环写出1+2+...+100的和

#!/bin/bash
m=0
for ((i=1;i<=100;i++))
do
m=$[i+m]
done
echo "$m"

3.使用for打印三角形以及乘法表

1.打印三角形

#!/bin/bash
for i in {1..10}
dofor j in `seq $i`doecho -e  "*\c"done
echo
done

2.打印乘法表

4.测试172.16.114.0网段存活的主机并将存活的主机IP地址写入文件中,未存活的主机放入另一文件中
#!/bin/bash
m=172.16.114.
for ((i=1;i<=254;i++))
do
{
ping -c1 -W1 ${m}${i} &>/dev/null
if [ $? -eq 0 ]
then
echo ${m}${i} >> /opt/data/hoston
else
echo ${m}${i} >> /opt/data/hostoff
fi
} &
done

5.文件改后缀名

#!/bin/bash
for i in *.txt
do
pr=`echo $i |cut -d "." -f1`
mv $i ${pr}.bak
done
echo "改名成功"

三、while循环语句

相对于for,需要知道循环次数

我们只知道停止条件,不知道次数,就需要使用while

直到达到条件

while循环

1、语法结构

2、死循环

while循环一般用于有条件判断的循环,若判断条件为真,则进入循环,当条件为假就跳出循环

while [判断条件]

do

命令序列

done

死循环:

while true 和[  1 -eq 1 ]

例子1:

猜价格

#!/bin/bash
m=`echo $[RANDOM%1000+1]`
t=0
while true
do
read -p "请输入价格(范围是1000以内的正整数):" h
let t++if [ $h -eq $m ]thenecho "你猜对了 价格是$h 你猜的次数为$t"exitelif [ $h -gt $m ]thenecho "你猜的价格高了"elseecho "你猜的价格低了"fi
done

例子2:

批量建立用户

#!/bin/bash
i=0
while [ "${i}" -le 3 ]
do
useradd l${i}
echo "123456" |passwd --stdin l${i} &>/dev/null
if [ $? -eq 0 ]
then
echo "用户 l${i} 已被建立"
else
echo "用户 l${i} 建立失败"
fi
let i++
done

例子3:

批量建立用户

#!/bin/bash
i=0
while [ "${i}" -le 3 ]
do
userdel -r l${i}
if [ $? -eq 0 ]
then
echo "用户 l${i} 已被删除"
else
echo "用户 l${i} 删除失败"
fi
let i++
done

四、until循环语句

until 循环与 while 循环类似,while 循环能实现的脚本 until 同样也可以实现,但区别是while 循环在条件为真是继续执行循环,而 until 则是在条件为假时执行循环

until [判断条件]

do

命令序列

done

例子1:

求和

#!/bin/bash
i=0
sum=0
until [ $i -gt 100 ]
do
sum=$[i+sum]
let i++
done
echo "$sum"

总结:本章主要介绍了shell的循环语句和用法

相关文章:

shell脚本三

目录 一、循环语句 一、循环 二、for循环语句 1.列表循环 2.与c语言循环相似的for循环 3.使用for打印三角形以及乘法表 4.测试172.16.114.0网段存活的主机并将存活的主机IP地址写入文件中&#xff0c;未存活的主机放入另一文件中 三、while循环语句 四、until循环语句…...

地埋式积水监测仪厂家直销推荐,致力于积水监测

地埋式积水监测仪是一种高科技设备&#xff0c;能够实时监测地面积水深度&#xff0c;并及时发出预警信息&#xff0c;有效避免因积水而产生的安全隐患。这种智能监测仪可以安装在城市道路、立交桥、地下车库等易积水地势较低的地方&#xff0c;以确保及时监测特殊地段的积水&a…...

CentOS7安装部署Kafka with KRaft

文章目录 CentOS7安装部署Kafka with KRaft一、前言1.简介2.架构3.环境 二、正文1.部署服务器2.基础环境1&#xff09;主机名2&#xff09;Hosts文件3&#xff09;关闭防火墙4&#xff09;JDK 安装部署 3.单机部署1&#xff09;下载软件包2&#xff09;修改配置文件3&#xff0…...

Java,数据结构与集合源码,关于Map接口的实现类(HashMap、LinkedHashMap)

HashMap中的元素的特点&#xff1a; HashMap中的所有key之间是不可重复的、无序的。所有的key构成一个Set集合。 HashMap中的所有的value彼此之间是可重复的、无序的。所有的value构成一个Collection集合。 HashMap中的一对key-value&#xff0c;就构成了一个entry。Map中的ent…...

【GUI】-- 13 贪吃蛇小游戏之食物及成绩判断

GUI编程 04 贪吃蛇小游戏 4.4 第四步&#xff1a;食物及成绩判断 首先&#xff0c;添加食物与分数的数据定义&#xff1a; //食物的坐标int foodX;int foodY;Random random new Random();//积分面板数据结构int score;在初始化方法中&#xff0c;添加(画出)食物与分数&…...

洗地机哪个牌子好用?洗地机选购攻略

传统的清洁方式都是扫把拖把的结合&#xff0c;既繁琐也劳累&#xff0c;每次清洁完后还得累的腰酸背痛的&#xff0c;像厨房这种地方甚至会不容易清洁干净&#xff0c;总感觉地板灰蒙蒙的。洗地机的诞生就很好的解决了这些问题&#xff0c;不用一遍遍的重复扫地拖地擦地&#…...

节能灯和led灯哪个更护眼?精选高品质的LED护眼台灯

节能灯和LED灯相比&#xff0c;我认为LED灯会更加护眼一些&#xff0c;不过想要更护眼建议选择LED的护眼台灯会更好&#xff01; 大家都知道光亮对于我们来说是非常重要的&#xff0c;尤其是夜晚的时候&#xff0c;往往要借助一些灯具来提供充足的照明。对于孩子而言&#xff0…...

大数据管家 DataSophon 1.2介绍

DataSophon 1.2...

vue实现爱心形状的复选框

目录 HTML代码&#xff1a; CSS代码&#xff1a; Vue代码&#xff1a; 这个例子使用了CSS来创建一个爱心形状的复选框&#xff0c;并使用Vue来控制其选中状态。点击复选框时&#xff0c;将调用toggleChecked方法来切换checked属性的值&#xff0c;以控制复选框的状态。 以下…...

珠江啤酒坚持创新,“酿”造电子化采购平台

珠江啤酒 广州珠江啤酒股份有限公司&#xff08;简称“珠江啤酒”&#xff09;是一家以啤酒酿造产业和啤酒文化产业“双主业”协同发展、包装产业配套发展的大型现代化国有控股企业。2010年&#xff0c;在深交所上市&#xff0c;下属企业16家&#xff0c;其中啤酒企业12家&…...

数据仓库模式之详解 Inmon 和 Kimball

目录 一、前言 二、企业信息工厂&#xff08;Inmon&#xff09; 2.1 概念 2.2 主要组件 2.3 流程 三、多维数据仓库&#xff08;Kimball&#xff09; 3.1 概念 3.2 核心组件 3.3 流程 四、异同及用途对比 4.1 异同对比 4.2 特征比较 一、前言 大部分关于数据仓库构建…...

斐波那契数列数列系列问题详解

斐波那契数列数列是我们学习递归的入门问题&#xff0c;是一种非常经典的题型&#xff0c;也衍生出了一些更复杂的题型&#xff0c;这一节就让我们彻底理解斐波那契数列系列问题。 一、概念介绍 1、什么是斐波那契数列&#xff1f; 斐波那契数列&#xff08;Fibonacci sequenc…...

Day38力扣打卡

打卡记录 网格中的最小路径代价&#xff08;动态规划&#xff09; 链接 class Solution:def minPathCost(self, grid: List[List[int]], moveCost: List[List[int]]) -> int:m, n len(grid), len(grid[0])f [[0x3f3f3f3f3f] * n for _ in range(m)]f[0] grid[0]for i i…...

【C语言:深入理解指针二】

文章目录 1. 二级指针2. 指针数组3. 字符指针变量4. 数组指针变量5. 二维数组传参的本质6. 函数指针变量7. 函数指针数组8. 转移表9. 回调函数10. qsort函数的使用与模拟实现 1. 二级指针 我们知道&#xff0c;指针变量也是变量&#xff0c;它也有自己的地址&#xff0c;使用什…...

前端实现表格生成序号001、002、003自增

我们最终想要实现的效果如图&#xff0c;从后端获取数据之后&#xff0c;不使用data中的id&#xff0c;而是使用自己生成的按照顺序自增的序号id。 script <template><el-table :data"sticker" border style"width: 100%" id"stickerList&q…...

【Django-01】 视图函数和视图类

视图函数 作用详解视图函数的特点视图类实际开发怎么用一个无意义的demo 作用 用于返回给前端数据详解 def list(request):"""1.普通的视图函数 request是HttpRequest 函数2.且必须用request.GET|request.POST 指定方法是什么方法3.返回值不能用 rest_framewor…...

编译安装报错:configure: error: cannot guess build type; you must specify one

1、编译安装报错 configure: error: cannot guess build type; you must specify one 该报错信息翻过过来的意思是&#xff1a;无法猜测编译 操作系统类型,请指定一个 2、解决方法 在原本的编译安装语句后面加上一句&#xff1a; “--buildarm-linux ” &#xff0c;这句话…...

2311rust,到66版本更新

1.60.0稳定版 基于源码的代码覆盖率 rustc中已稳定支持基于LLVM的覆盖率检测.可用-Cinstrument-coverage重构代码,如: RUSTFLAGS"-C instrument-coverage" cargo build之后,运行生成的二进制文件,它在当前目录中生成一个default.profraw文件.环境变量可覆盖路径和…...

JOSEF约瑟 过电流继电器 JL15-300/11 触点形式一开一闭 板前接线

系列型号 JL15-1.5/11电流继电器JL15-2.5/11电流继电器 JL15-5/11电流继电器JL15-10/11电流继电器 JL15-15/11电流继电器JL15-20/11电流继电器 JL15-30/11电流继电器JL15-40/11电流继电器 JL15-60/11电流继电器JL15-80/11电流继电器 JL15-100/11电流继电器JL15-150/11电流继电…...

postman设置接口关联这样做,薪资直接涨3k

postman设置接口关联 在实际的接口测试中&#xff0c;后一个接口经常需要用到前一个接口返回的结果&#xff0c; 从而让后一个接口能正常执行&#xff0c;这个过程的实现称为关联。 在postman中实现关联操作的步骤如下&#xff1a; 1、利用postman获取上一个接口指定的返回值…...

IDM试用重置工具:告别30天限制的智能解决方案

IDM试用重置工具&#xff1a;告别30天限制的智能解决方案 【免费下载链接】idm-trial-reset Use IDM forever without cracking 项目地址: https://gitcode.com/gh_mirrors/id/idm-trial-reset 你是否曾经遇到过这样的情况&#xff1a;正在下载重要文件时&#xff0c;ID…...

RTranslator模型下载快速指南:5分钟搞定离线翻译模型部署

RTranslator模型下载快速指南&#xff1a;5分钟搞定离线翻译模型部署 【免费下载链接】RTranslator Open source real-time translation app for Android that runs locally 项目地址: https://gitcode.com/GitHub_Trending/rt/RTranslator 还在为RTranslator首次启动时…...

2026 RPA 行业趋势:不再拼界面自动化,拼企业级场景落地

很多人以前对RPA的理解&#xff0c;其实非常简单&#xff1a;“流程脚本工具”。但AI Agent开始落地后&#xff0c;企业很快发现&#xff1a;RPA从过去的“自动化工具”&#xff0c;逐渐变成&#xff1a;AI Agent的执行基础。而这一轮行业重构里&#xff0c;领先的厂商都有一个…...

解决poi-tl合并Word时遇到的‘xsi前缀未绑定’报错:一个命名空间引发的血案

深入解析poi-tl合并Word文档时的XML命名空间陷阱 当你使用poi-tl库合并Word文档时&#xff0c;突然遇到"xsi前缀未绑定"的错误提示&#xff0c;这背后隐藏着Office Open XML(OOXML)格式的深层机制。这个看似简单的错误实际上揭示了Word文档内部XML结构的复杂性&#…...

告别低效业务开发,大模型赋能程序员高效办公

文章目录 前言一、醒醒&#xff01;2026年了&#xff0c;你还在靠堆时间写CRUD内卷&#xff1f;1.1 扎心现实&#xff1a;传统业务开发&#xff0c;正在陷入“越忙越穷”的死循环1.2 90%的程序员&#xff0c;都用错了大模型1.3 真相&#xff1a;大模型不是来抢饭碗的&#xff0…...

从零到上架:用Fyne v2.3.5给你的Go项目加个酷炫的图形界面(Mac/Linux/Windows全平台指南)

从零到上架&#xff1a;用Fyne v2.3.5给你的Go项目加个酷炫的图形界面&#xff08;Mac/Linux/Windows全平台指南&#xff09; 如果你已经掌握了Go语言的基础&#xff0c;但厌倦了命令行工具的单调输出&#xff0c;或者想为你的后台服务添加一个用户友好的交互界面&#xff0c;…...

3步实现Android手机USB网络共享:Mac用户的终极网络解决方案

3步实现Android手机USB网络共享&#xff1a;Mac用户的终极网络解决方案 【免费下载链接】HoRNDIS Android USB tethering driver for Mac OS X 项目地址: https://gitcode.com/gh_mirrors/ho/HoRNDIS 在移动办公成为常态的今天&#xff0c;稳定的网络连接是工作效率的关…...

微服务架构下的测试策略全景图

随着企业数字化转型进程的加速&#xff0c;微服务架构以其高内聚、松耦合、独立部署和弹性伸缩的优势&#xff0c;已成为构建现代复杂软件系统的主流选择。然而&#xff0c;这种将单体应用拆分为一系列自治、细粒度服务的分布式模式&#xff0c;在赋予开发敏捷性的同时&#xf…...

LLM 上下文管理:技巧与优化

LLM 上下文管理&#xff1a;技巧与优化 核心原理 上下文管理的基本概念 LLM&#xff08;大型语言模型&#xff09;的上下文管理是指在与模型交互过程中&#xff0c;有效管理输入上下文的长度、质量和结构&#xff0c;以获得最佳的模型输出。其核心作用包括&#xff1a; 信息…...

如何在Mac上轻松运行Windows应用:Whisky完整指南与实战教程

如何在Mac上轻松运行Windows应用&#xff1a;Whisky完整指南与实战教程 【免费下载链接】Whisky A modern Wine wrapper for macOS built with SwiftUI 项目地址: https://gitcode.com/gh_mirrors/wh/Whisky 你是否曾经因为某些软件只有Windows版本而感到困扰&#xff1…...