shell循环控制

shell双层循环

双层循环和循环语句的使用,while和until的 语法使用

echo 打印

echo -n 表示不换行输出

echo -e 输出转义字符

\b:相当于退格键(backspace)

\n:换行,相当于回车键

\f:换行,换行后的新行开头连着上一行的行尾

\t:相当于tab键 横向制表符

echo -ne 即不换行输出制表符

#9*9乘法表
for i in {1..9}
dofor ((j=1;j<=i;j++))doecho -ne "$i*$j=$[i*j]\t"doneecho
done
#倒直角三角形
for ((i=5;i>=1;i--))
dofor ((j=1;j<=i;j++))doecho -n $j doneecho
done

循环控制,continue和break默认数制就是1

#循环控制,break
for i in {..3}
do
for j in {l..5}
00
if [ $j -eq 3 ]
then
break 2
#循环控制,continue和break默认数值就是1.
fi
echo $j
done
#echo $i
done#循环控制,continue
for i in {..3}
do
for j in {l..5}
00
if [ $j -eq 3 ]
then
continue 2
#循环控制,continue和break默认数值就是1.
fi
echo $j
done
#echo $i
done

exit:满足条件,立刻退出,不论有几层

exit和break类似,但是exit 后面跟任意数字都是直接退出

set -x

#开始调试模式

set +x

#关闭调试模式

while和until

while满足条件就执行循环,不满足条件才会退出

死循环,需要主动结束循环或者打到条件才结束循环。

while[判断条件]

do

​ 命令序列

done

while true #永远为真,就是死循环

while [ 1 -eq 1 ]

while :

until循环:条件不满足才执行循环,一旦条件成立,循环终止

until [ 条件 ]

do

​ 命令序列

done

#测试一个网段,c类的私有地址,32位网段,测试可以ping通的保留到/opt/host.txt,不通,提示不通#
for ping1 in {30..35}
do
{ping -c 1 192.168.39.$ping1&> /dev/nullif [[ $? -eq 0 ]]thenecho "ip is online"echo 192.168.39.$ping1  >> /opt/617test.sh/hosts.txtelseecho "ip is offline"fi
}&
#把整个循环体的代码看做一整个内容,相当于并行,&的作用是把循环循环成立的内容放入后台执行
done
wait
#wait的执行结束之后,直接突出。并发执行

{}&

wait

可以大大的节省执行时间

练习

#使用循环语句,将一个0-255的十进制数转换8位的二进制数:
num=$(($RANDOM%256))
a=128
#128为2^7,最高位次
for ((i=1;i<=8;i++))
doif [[ $num -ge $a ]];thenecho -n 1 #128 64 32 16 8 4 2 1如果随机数比a大则输出1,没有则输出0let num-=$aelseecho -n 0fia=$[a/2]
#每一个位置都是a/2的值
done
echo ""
#用户名存放在users.txt文件中,每行一个。判断文件里的用户名是否存在
#如果用户用户存在,提示用户已存在
#用户存在,但是没有设置密码,要提示用户设置密码
#用户不存在,创建用户,然后给用户创建密码
#cat /etc/passwd | awk -F: `{print $1}` | grep  "$user"
#cat /etc/shadow | grep "$user" | awk -F: '{print $2}'
for user in $(cat /opt/users.txt)
do
cat /etc/passwd | awk -F: '{print $1}' | grep "$user"
if [[ $? -eq 0 ]]
thenecho "用户名存在"mima=$(cat /etc/shadow | grep "$user" | awk -F: '{print $2}')if [ "$mima" == "!!" ] || [ -z "$mima" ]thenecho "用户没有设置密码,请设置密码"fi
elseecho "用户名不存在,请创建用户名和密码"echo "创建用户,用户密码123"useradd -n $userecho 123 | passwd --stdin $user
fi
done

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

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

相关文章

Postman接口测试工具详解(高清图例)

一、引言 1. 介绍接口测试的重要性 在当今软件开发领域&#xff0c;接口&#xff08;API&#xff09;已成为不同系统、服务或组件之间交互的桥梁。随着微服务架构的普及&#xff0c;接口的重要性日益凸显。然而&#xff0c;接口的复杂性和多样性也带来了诸多挑战&#xff0c;其…

月球全月地质图和4.5亿像素月面标注地图

嫦娥六号都在月球挖到土特产了&#xff0c;那你知道月球到底长什么样子吗&#xff1f; 现在我们就为你分享一下月球的全月地质图&#xff0c;以及4.5亿像素月面带标注的地图&#xff0c;你可以在文末查看该数据的领取方法。 月球全月地质图 对于月球的探索&#xff0c;美国和…

arsetryhtehrwgefwadasdadasd

48b91400000080f7ffff48b8bd427ae5d594bfd6488b0948f7e148b8cdcccccccccccccc48c1ea1748f7e24c8bea49c1ed02 直接在windbg中把执行内存修改为上面这一串字节序列&#xff0c;运行完成后r13中将包含当前时间戳&#xff0c;可使用如下代码转换成人类可阅读时间格式 /*代码BEGIN*…

YOLOv8 + SAM实现自动标注分割数据集【附完整源码+步骤详解】

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…

014基于SSM+Jsp的网络视频播放器

开发语言&#xff1a;Java框架&#xff1a;ssm技术&#xff1a;JSPJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包…

北京十大金牌律师事务所(2024年权威高胜诉率推荐)

律师职业本身&#xff0c;是一个看起来很美、说起来很烦、听起来很阔、做起来很难的职业。所谓术业有专攻&#xff0c;律师的专业就是解决法律纠纷&#xff0c;负责为个人和组织提供法律咨询和代理法律服务。律师在执行其职责时需要遵守道德准则和法律规定&#xff0c;并以客户…

数据可视化实验一:Panda数据处理及matplotlib绘图初步

目录​​​​​​​ 2024-6-17 一、请将所有含有发明家“吴峰”的发明专利的“申请日”打印出来。并将含有“吴峰”的所有发明专利条目保存到Excel中 1.1 代码实现 1.2 运行结果 二、读取文件创建城市、人口、性别比、城镇化率DataFrame对象&#xff0c;计算指标排名&…

多种异构数据的分析设计方案3:聊聊策略模式+函数式接口+MAP

多种异构数据的分析设计方案3&#xff1a;聊聊策略模式函数式接口MAP 定义 策略模式(Strategy Pattern): 定义并封装一系列算法类&#xff0c;并且这些类可以相互替换&#xff0c;可以在运行时根据需要选择不同的算法&#xff0c;而不需要修改客户端流程代码。 策略模式让算法…

同三维T80004EH-N HDMI高清NDI编码器

1路HDMI 1路3.5音频输入,支持NDI 产品简介&#xff1a; 同三维T80004EH-N 高清HDMI编码器是专业的NDI高清音视频编码产品&#xff0c;该产品支持1路高清HDMI音视频采集功能&#xff0c;1路3.5MM独立音频接口采集功能。编码输出双码流H.265/H.264格式&#xff0c;音频MP3/AAC格…

小程序开发平台源码系统商业运营版 带完整的安装代码包以及搭建教程

系统概述 小程序开发平台源码系统商业运营版 是一套基于现代技术栈开发的&#xff0c;专为中小企业及个人开发者设计的小程序快速开发与运营管理解决方案。该系统采用模块化架构设计&#xff0c;集成了代码生成器、可视化拖拽编辑器、多端适配引擎、云端部署、数据统计分析等多…

问题解决-连接ssh很慢

SSH 连接慢可能是由多种原因引起的。以下是一些常见的原因及其解决方法&#xff1a; 1. DNS 反向解析 原因&#xff1a;SSH 服务器尝试对连接客户端的 IP 地址进行反向 DNS 解析&#xff0c;导致连接延迟。 解决方法&#xff1a;禁用 SSH 服务器的 DNS 反向解析。 编辑 /et…

【图书推荐】《Hive入门与大数据分析实战》

本书重点 Hive的网站流量分析项目、旅游酒店评价大数据分析项目&#xff0c;两个案例&#xff08;均包括SQL和Java编程两种解决方法&#xff0c;SQL实现不用编程&#xff09;可用于课题研究和毕业论文素材。 内容简介 Hive是基于Hadoop的一个数据仓库工具&#xff0c;用来进…

Stable Diffusion基础:ControlNet之细节替换

本文继续给大家分享 Stable Diffusion 的基础能力&#xff1a;ControlNet之细节替换&#xff0c;故事的主角是 Tile。 Tile 的原意是瓦片、瓷砖。作为 ControlNet&#xff0c;它会对参考图进行分块&#xff0c;并识别出区块内的对象。如果提示词和区块内的对象匹配&#xff0c…

数据分离(C++)

第1题 数的变化(课程A) 查看测评数据信息 输入1个正整数a&#xff0c;每次打印后删除个位数&#xff0c;直至数字删除完。 输入格式 一行1个正整数&#xff1a;a&#xff0c;范围在[1,100000000]。 输出格式 多行整数&#xff0c;一个比一个短。 输入/输出例子1 输入&#…

ucos抢占式实时多任务操作系统 (RTOS)。

介绍 uCOS (也称为 μC/OS 或 Micro-Controller Operating System) 是一个开源的、可移植的、可裁剪的、抢占式实时多任务操作系统 (RTOS)。它最初由 Jean J. Labrosse 编写&#xff0c;并广泛用于嵌入式系统设计中。uCOS 是一个小型的 RTOS&#xff0c;非常适合那些需要实时性…

使用 calibre 拆分电子书合辑

文章目录 引言下载插件拆书设置封面等元信息 引言 下载电子书合辑后&#xff0c;想拆分为单独成册的文件 https://bookfere.com/post/603.html 教程使用 calibre 的 EpubSplit 插件&#xff0c;这里我跟着实践&#xff0c;记录在此&#xff0c;希望能帮助你。 本文基于 macOS …

【Android面试八股文】1. 怎么保证线程按顺序执行? 2. 如何实现线程排队 ?

文章目录 面试想考察的知识点面试问题面试场景问题 0:在多线程编程中,有没有办法保证线程按照特定的顺序执行?问题 1:假设有A、B两个线程,B线程需要在A线程执行完成之后执行问题 2:假设有A、B两个线程,其中A线程中执行分为3步,需要在A线程执行完成第二步之后再继续执行…

SQL server 内连接 左连接 右连接 全连接 语句

在SQL Server中&#xff0c;连接&#xff08;JOIN&#xff09;操作用于从两个或多个表中检索相关数据。内连接、左连接、右连接和全连接是最常用的几种连接类型。下面详细介绍每种连接的用法和区别&#xff1a; 1. 内连接 (INNER JOIN) 内连接只返回两个表中满足连接条件的匹…

算法:11. 盛最多水的容器

11. 盛最多水的容器 给定一个长度为 n 的整数数组 height 。有 n 条垂线&#xff0c;第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线&#xff0c;使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明&#xff1a;你…

山东大学软件学院深度学习期末回忆版

&#xff08;大数据&#xff0c;2021级&#xff0c;老师是gys和cm&#xff0c;贝多芬&#xff0c;但是略微会有10% 的考试内容不在背诵范围内&#xff0c;看个人理解&#xff09; 一、名词解释(8 * 3 24) 1、超参数 2、梯度确认 3、分布式表示 4、共现矩阵 5、Attention机制…