12.for 条件循环语句 (3)

for 循环语句

允许脚本一次性读取多个信息,然后逐一对信息进行操作处理。当要处理的数据有范围时,使用for循环语句。

         使用 for 循环语句从列表文件中读取多个用户名,然后为其逐一创建用户账户并设 置密码。首先创建用户名称的列表文件users.txt,每个用户名称单独一行。

[root@localhost ~]# cat users.txt
marry
xiaoming
xiaohong
trick1
trick2
trick3
trick4
trick5
trick6
trick7

         在脚本中使用 read 命令读取用户输入的密码值,然 后赋值给PASSWD变量,

        并通过-p参数向用户显示一段提示信息,告诉用户正在输入的内容 即将作为账户密码。

        在执行该脚本后,会自动使用从列表文件 users.txt 中获取到所有的用户 名称,

        然后逐一使用“id用户名”命令查看用户的信息,并使用$?判断这条命令是否执行成 功,也就是判断该用户是否已经存在。

        在输入为账户设定的密码后将由脚本自动检查 并创建这些账户。

        由于已经将多余的信息通过输出重定向符转移到了/dev/null黑洞文件中,

        因此 在正常情况下屏幕窗口除了“用户账户创建成功”(Create success)的提示后不会有其他内容

[root@localhost ~]# cat addusers.sh
#!/bin/bash
read -p "输入你的密码:" PASSWD
for UNAME in `cat users.txt`
do
        id $UNAME &> /dev/null
        if [ $? -eq 0 ]
        then
                echo "$UNAME , ALready exists"
        else
                useradd $UNAME &> /dev/null
                echo "$PASSWD" | passwd --stdin &> /dev/null
                echo "$UNAME , create success"
        fi
done
[root@localhost ~]# bash addusers.sh
输入你的密码:123456
marry , create success
xiaoming , create success
xiaohong , create success
trick1 , create success
trick2 , create success
trick3 , create success
trick4 , create success
trick5 , create success
trick6 , create success
trick7 , create success

        /dev/null是一个被称作Linux黑洞的文件,把输出信息重定向到这个文件等同于删 除数据(类似于没有回收功能的垃圾箱),可以让用户的屏幕窗口保持简洁。

 创建成功

[root@localhost ~]# tail -10 /etc/passwd
marry:x:1001:1001::/home/marry:/bin/bash
xiaoming:x:1002:1002::/home/xiaoming:/bin/bash
xiaohong:x:1003:1003::/home/xiaohong:/bin/bash
trick1:x:1004:1004::/home/trick1:/bin/bash
trick2:x:1005:1005::/home/trick2:/bin/bash
trick3:x:1006:1006::/home/trick3:/bin/bash
trick4:x:1007:1007::/home/trick4:/bin/bash
trick5:x:1008:1008::/home/trick5:/bin/bash
trick6:x:1009:1009::/home/trick6:/bin/bash
trick7:x:1010:1010::/home/trick7:/bin/bash

for语句和if结合

测试主机是否在线

准备主机列表文件

[root@localhost ~]# cat ip.txt
192.168.10.1
192.168.20.1
[root@localhost ~]# cat  checkhosts.sh
#!/bin/bash
HLIST=$(cat ~/ip.txt)
for IP in $HLIST
do
        ping -c 3 -i 0.2 -w 3 $IP &> /dev/null
        if [ $? -eq 0 ]
        then
                echo "Host $IP is On-line"
        else
                echo "Host $IP is Off-line"
        fi
done

[root@localhost ~]# bash checkhosts.sh
Host 192.168.10.1 is Off-line
Host 192.168.20.1 is On-line

 

        将前面的双分支if条件语句与for循环语句相结合,让脚本从主机列表文件 ip.txt中自动读取IP地址(用来表示主机)并将其赋值给HLIST变量,从而通过判断ping 命令执行后的返回值来逐个测试主机是否在线。

        脚本中出现的“$(命令)”是一种完全类似于转义字符中反引号`命令`的Shell操作符,效果同样是执行括号或双引号括起来的 字符串中的命令。

        Shell脚本中的代码缩进格式会根据不同的语句而改变。这是由 Vim编辑器自动完成的,用户无须进行额外操作

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux浅学笔记02

目录 grep-wc-管道符 echo-tail-重定向符 vi编辑器 grep-wc-管道符 grep命令(过滤文件内容) //更准确的来说,是筛选包括“所需字符”的一句内容或多句内容。 语法:grep [-n] 关键字 文件路径 //-n:可选,表示在结果中匹配的行…

如何防止联通光猫后台运营商远程自动改超管密码

环境: 联通光猫 ZXHN F677V9 硬件版本号 V9.0 软件版本号 V9.0.0P1T3 U盘16G 笔记本电脑 问题描述: 如何防止联通光猫后台运营商远程自动改超管密码 家里用的是ZXHN F677V9 光猫,自己改了超级密码之后用了几次,最近就无法登录了,问了装维师傅说是最近统一改了,这还…

模型之大脑和计算机的模型化

大脑和计算机的模型化 “素数分解:悬而未决的问题与计算机科学的挑战” 计算机同样也可以看作由相互作用的各部分集合而成;很大程度上由于这个原因,理论计算机科学中同样有很多悬而未决的重要问题。其中有如下这样一个例子,我们…

2023 工业 AR 关键词:纵深和开拓

2023 年,以虚实融合、工业元宇宙为代表的“新数字化”升级在工业制造领域达成共识。 ▲五部委联合印发元宇宙行动计划 通过发展元宇宙赋能新型工业化 而相对过去几年的行业渗透广、落地场景多样的 AR 业务拓展与合作,#纵深和#开拓,成为 2023…

网工内推 | 国企、合资公司IT专员,13薪,NA以上即可

01 上海新徐汇(集团)有限公司 招聘岗位:IT运维 职责描述: 1.负责制定网络体系搭建、IP地址分配、网络拓扑图、无线网络等; 2.负责桌面运维技术支持,确保各类系统和终端设备正常工作; 3.负责弱电…

构建中国人自己的私人GPT—与文档对话

先看效果 他可以从上传的文件中提取内容作为答案。上传文件摄取速度 摄取速度取决于您正在摄取的文档数量以及每个文档的大小。为了加快摄取速度,您可以在配置中更改摄取模式。 存在以下摄取模式: simple:历史行为,一次按顺序摄…

Bread:一款功能强大的BIOS逆向工程和高级调试工具

关于Bread Bread是一款功能强大的BIOS逆向工程和高级调试工具,该工具也是一个“可注入”的实模式(Real-Mode)x86调试器,可以帮助广大研究人员通过串行线缆从另一台电脑调试任意实模式代码。 考虑到目前社区中很多BIOS逆向工程工…

学编曲怎么入门 学会编曲能赚钱吗 编曲软件哪个好用 学编曲要先学什么 编曲和作曲什么区别

一、学编曲有什么用 1、工作时间较为自由 编曲是一个技能专业,换句话说,编曲是一项技能,如果能够熟练掌握编曲这项技能,那么就可以尝试从事一些和编曲相关的职业,例如编曲师等等,这类和编曲有关的职业大多…

零基础学Python(5)— 基本数据类型

前言:Hello大家好,我是小哥谈。在内存中存储的数据可以有多种类型。例如:一个人的姓名可以用字符型存储,年龄可以使用数值型存储,婚姻状况可以使用布尔型存储。这里的字符型、数值型、布尔型都是Python语言中提供的基本…

gin介绍及helloworld

1. 介绍 Gin是一个golang的微框架,封装比较优雅,API友好,源码注释比较明确,具有快速灵活,容错方便等特点 对于golang而言,web框架的依赖要远比Python,Java之类的要小。自身的net/http足够简单&…

RK3399平台开发系列讲解(USB篇)BusHound 工具使用介绍

🚀返回专栏总目录 文章目录 一、BusHound简介二、BusHound的下载三、BusHound设备窗口四、BUSHound发送命令窗口沉淀、分享、成长,让自己和他人都能有所收获!😄 📢 BusHound软件是由美国perisoft公司研制的一种专用于PC机各种总线数据包监视和控制的开发工具软件,其名…

帝国cms无限级分销的逻辑思路效果展示以及表结构的初步规划

#小李子9479# #帝国cms无限级分销# #帝国cms三级分销系统# 关于分销系统 ,我们要解决以下几个重要的逻辑关系, 1,用户上下级关系,即A通过分享期邀请链接,B点击或扫码注册后,成为A的下线。 2。下级级别的…

10.常用统计分析方法——主成分分析和因子分析

基础知识: 主成分分析概念 主成分分析PCA:是一种数据降维的技巧,将大量相关变量转化为一组很少的不相关变量,这些无关变量称为主成分。 在特征选择方法中有一种方法是方差过滤,即如果一个特征的方差很小&#xff0c…

ckman:非常好用的ClickHouse可视化集群运维工具

概述 什么是ckman ckman,全称是ClickHouse Management Console, 即ClickHouse管理平台。它是由擎创科技数据库团队主导研发的一款用来管理和监控ClickHouse集群的可视化运维工具。目前该工具已在github上开源,开源地址为:github…

免费SSL申请和自动更新

当前是在mac下操作 安装certbot # mac下brew安装即可 brew install certbotcentos 安装 centos安装文档 申请泛解析证书 sudo certbot certonly --manual --preferred-challengesdns -d *.yourdomain.com## 输出 Saving debug log to /var/log/letsencrypt/letsencrypt.lo…

民用激光雷达行业简析

01. 激光雷达是“机器之眼” • 激光雷达是一个通过发射激光并接受发射激光同时对其进行信号处理,从而获得周边物体距离等信息的主动测量装置。 • 激光雷达主要由光发射、光扫描、光接收三大模块组成。光发射模块集成了驱动、开关和光源等芯片。光接收模块集成了…

构筑双品牌矩阵背后,广汽埃安讲出能源生态闭环的“新故事”

“一路繁花”用来形容广汽埃安的2023年并不为过。 2023年12月28日,埃安达成累计产销百万辆的目标,成为全球最快破百万的纯电品牌、新能源品牌以及汽车品牌;全年累计销量超48万辆,同比增长77%。 值得一提的是,2023年以…

APUE学习之信号(Signal)

目录 一、信号 1、基本概念 2、用户处理信号的方式 3、查看信号 4、可靠信号和不可靠信号 5、信号种类 6、终止进程信号的区别 二、进程对信号的处理 1、signal()函数 2、sigaction()函数 3、代码演示 4、运行结果…

鸿蒙开发案例002

1、目标需求 界面有增大字体按钮,每次点击增大字体按钮,“Hello ArkTS”都会变大 2、源代码 Entry Component struct Page {textValue: string Hello ArkTSState textSize: number 50myClick():void{this.textSize 4}build() {Row() {Column() {//…

基于若依的ruoyi-nbcio流程管理系统一种简单的动态表单模拟测试实现(五)

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio 演示地址:RuoYi-Nbcio后台管理系统 更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码: https://gitee.com/nbacheng/n…