Shell循环:for(一)

语法结构:

  •         for 变量名 [ in 取值列表]
  •         do
  •         循环体
  •         done

        示例1:

                1、需求:自动循环创建10个用户

                2、演示:

[root@localhost ~]# vim for.sh    #脚本编写
#!/bin/bash
for i in {1..10}
do
useradd "user$i"
done[root@localhost ~]# bash for.sh     #执行脚本

 

 

 

        示例2:ping测试主机

                1、需求:通过循环工具,探测全网主机。将在线主机记录在文本中。

                2、分析:

                        1、编写常规ping测试脚本(无循环)

  •                 2、添加循环语句。for i in {2..254}

    •         3、优化脚本(后台执行,清空脚本,循环完成提示,wait间隔)

    • 3、演示:

    • [root@localhost ~]# vim ping1.sh    #脚本编写
      ##1、编写ping脚本
      #!/bin/bash
      ping -c1 -W1 192.168.151.151 &> /dev/null
      if [ $? -eq 0  ]
      then
      echo "192.168.151.151"  | tee -a  ip.txt
      else
      echo "192.168.151.151"  >> downip.txt
      fi[root@localhost ~]# chmod +x ping1.sh    #脚本授权[root@localhost ~]# ./ping1.sh     #执行脚本

[root@localhost ~]# vim ping1.sh    #脚本编写
##2、使用循环
#!/bin/bash
>ip.txt
>downip.txtfor i in {2..254}
do
ip=192.168.151.$iping -c1 -W1 $ip  &> /dev/null
if [ $? -eq 0  ]
then
echo "$ip"  | tee -a  ip.txt
else
echo "$ip"  >> downip.txt
fi
done[root@localhost ~]# ./ping1.sh     #执行脚本

 

[root@localhost ~]# vim ping1.sh     #编写脚本
##3、优化脚本
#!/bin/bash
>ip.txt         #清空文本记录
>downip.txtfor i in {2..254}
do
{           
ip=192.168.151.$i ping -c1 -W1 $ip  &> /dev/null
if [ $? -eq 0  ]
then
echo "$ip"  | tee -a  ip.txt
else
echo "$ip"  >> downip.txt
fi  
}&  
done
wait    #等待前一个程序执行完毕。在执行下一个命令。
echo "在线主机测试完毕。"[root@localhost ~]# ./ping1.sh     #执行脚本

 

 

 

 

 

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

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

相关文章

图神经网络的数学原理总结

图深度学习(Graph Deep Learning) 多年来一直在加速发展。许多现实生活问题使GDL成为万能工具:在社交媒体、药物发现、芯片植入、预测、生物信息学等方面都显示出了很大的前景。 本文将流行的图神经网络及其数学细微差别的进行详细的梳理和解释,图深度学…

Chrome 访问不了项目?10080端口 ERR_UNSAFE_PORT:问题原因 / 解决方案

文章目录 被禁用端口列表解决方法方法一、更换端口 / 使用代理 / 使用域名方法二、对浏览器下手WindowsMac 最近有客户反馈,在chrome浏览器中访问不了项目,其他浏览器都是正常的。 ?奇了怪了,难道客户对chrome做了什么操作&#x…

java飞翔的鸟

一.准备工作 首先创建一个新的Java项目命名为“飞翔的鸟”,并在src中创建一个包命名为“com.qiku.bird",在这个包内分别创建4个类命名为“Bird”、“BirdGame”、“Column”、“Ground”,并向需要的图片素材导入到包内。 二.代码呈现 p…

itext - PDF模板套打

目录 环境配置 快速使用 代码实现 添加图片 封装 项目需求:获取列表数据之后直接将数据生成一个pdf。因此需要使用到 itext 对pdf进行直接操作。 环境配置 需要为pdf添加文字域,因此需要安装Adobe Acrobat 准备一个空的PDF文件,如果有现…

如何为您的企业选择合适的多因素认证?

在传统的网络安全架构中,重点在于防止非法入侵,例如防火墙、VPN 、堡垒机等安全设备的重心都在于防止用户违规访问企业资源,一旦合法用户的账号密码被入侵者拿到,就可以冒充合法用户访问企业资源,所有的安全设备形同虚…

解决:ImportError: cannot import name ‘Adam‘ from ‘keras.optimizers‘

解决:ImportError: cannot import name ‘Adam‘ from ‘keras.optimizers‘ 背景 在使用之前的代码时,报错: from keras.optimizers import Adam ImportError: cannot import name ‘Adam’ 报错问题 from keras.optimizers import Adam I…

微机原理_2

一、单项选择题(本大题共15小题,每小题3分,共45分。在每小题给出的四个备选项中,选出一个正确的答案,请将选定的答案填涂在答题纸的相应位置上。) 下列数中最大的数为() A. 10010101B B. (126)8 C. 96H D. 100 CPU 执行 OUT 60H,…

vue一个页面左边是el-table表格 当点击每条数据时可以在右边界面编辑表格参数,右边保存更新左边表格数据

实现思路: 1.点击当前行通过row拿到当前行数据。 2.将当前行数据传给子组件。 3.子组件监听父组件传过来的数据并映射在界面。 4.点击保存将修改的值传给父组件更新表格。 5.父组件收到修改过后的值,可以通过字段判断比如id,通过 findIn…

Co-DETR:DETRs与协同混分配训练论文学习笔记

论文地址:https://arxiv.org/pdf/2211.12860.pdf 代码地址: GitHub - Sense-X/Co-DETR: [ICCV 2023] DETRs with Collaborative Hybrid Assignments Training 摘要 作者提出了一种新的协同混合任务训练方案,即Co-DETR,以从多种标…

element中el-switch的v-model自定义值

一、问题 element中的el-switch的值默认都是true或false&#xff0c;但是有些时候后端接口该字段可能是0或者1&#xff0c;如果说再转换一次值&#xff0c;那就有点太费力了。如下所示&#xff1a; <template><el-switchinactive-text"否"active-text&quo…

System-V共享内存和基于管道通信实现的进程池

文章目录 一.进程间通信:进程间通信的本质: 二.Linux管道通信匿名管道:关于管道通信的要点:基于匿名管道构建进程池: 三.System-V共享内存共享内存和命名管道协同通信 参考Linux内核源码版本------linux-2.4.3 一.进程间通信: 操作系统中,为了保证安全性,进程之间具有严格的独…

Java设计模式系列:单例设计模式

Java设计模式系列&#xff1a;单例设计模式 介绍 所谓类的单例设计模式&#xff0c;就是采取一定的方法保证在整个的软件系统中&#xff0c;对某个类只能存在一个对象实例&#xff0c;并且该类只提供一个取得其对象实例的方法&#xff08;静态方法&#xff09; 比如 Hiberna…