Shell 脚本应用(三)

使用 for 循环语句

for语句的结构

        使用for循环语句时,需要指定一个变量及可能的取值列表,针对每个不同的取值重复执行相同 的命令序列,直到变量值用完退出循环。在这里,“取值列表”称为for语句的执行条件,其中包括多 个属性相同的对象,需要预先指定(如通讯录、P黑名单)

上述语句结构中,for 语句的操作对象为用户指定名称的变量,并通过 in关键字为该变量预先设置了一个取值列表,多个取值之间以空格进行分隔,位于do… 中的执行语句需要引用变量以完成相应的任务。 

for语句应用示例

        根据姓名列表批量添加用户 根据人事部门给出的员工姓名的拼音列表,在Linux服务器中添加相应的用户账号,初始密码均 设置为“123456”.其中,员工姓名列表中的账号数量并不固定,而且除了要求账号名称是拼音之外, 并无其他特殊规律。 针对上述要求,可先指定员工列表文件users,txt,然后编写一个名为uaddfor.sh 的 Shell 脚本, 从users.txt 文件中读取各用户名称,重复执行添加用户、设置初始密码的相关操作

        

若要删除uaddfor.sh 脚本所添加的用户,只需参考上述脚本代码,将for循环体中添加用户的命令 序列改为删除用户的操作即可。例如,建立一个名为udelfor.sh的脚本如下所示。

使用while 循环语句 

while 语句的结构

        使用 while 循环语句时,可以根据特定的条件反复执行一个命令序列,直到该条件不再满足时 为止.在脚本应用中,应该避免出现死循环的情况,否则后边的命令操作将无法执行,因此,循环 体内的命令序列中应包括修改测试条件的语句,以便在适当的时候使测试条件不再成立,从而结束 循环.

while语句的执行流程:首先判断 while后的条件测试操作结果,如果条件成立,则执行do…done 循环体中的命令序列;返回while后再次判断条件测试结果,如果条件仍然成立,则继续执行循环 体:再次返回到while后,判断条件测试结果……如此循环,直到while后的条件测试结果不再成立 为止,最后跳转到done语句,表示结束循环,如图8.2所示. 使用while循环语句时,有两个特殊的条件测试操作,即true(真)和false(假).使用true作 为条件时,表示条件永远成立,循环体内的命令序列将无限执行下去,除非强制终止脚本(或通过exit语句退出脚本):反之,若使用false作为条件,则循环体将不会被执行,这两个特殊条件也可以 用在if语句的条件测试中。

 

while 语句应用示例 

        批量添加规律编号的用户 在一些技术培训和学习领域,出于实验或测试的目的,需要批量添加用户账号,这些用户的名 称中包含固定的前缀字串,并按照数字顺序依次进行编号,账号的数量往往也是固定的.例如,若 要添加20个用户,名称依次为stu1stu2.…、stu20.可以参考以下操作。

上述脚本代码中,使用变量i来控制用户名称的编号,初始赋值为1,并且当取值大于20时终 止循环。在循环体内部,通过语句“leti++”(等同于i=‘expr si+1)来使变量i的值增加1. 因此当执行第一次循环后i的值将变为2.执行第二次循环后i的值将变为3.……依此类推。 测试并确认 uaddwhile.sh脚本的执行结果如下所示.

若要删除uaddwhile.sh脚本所添加的用户,只需参考上述脚本代码,将while循环体中添加用户 的命令序列改为删除用户的操作即可。

 

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

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

相关文章

makefile例子

1、目录结构 2、文件 2.1、 test.h extern void test(void); 2.2 、test.c #include <stdio.h>void test(void) {printf("Hello world!\n"); }2.3 、main.c #include "test.h"int main(void) {test();return 0; }2.4、makefile TEST_DIR : $(s…

ai学习笔记-入门

目录 一、人工智能是什么&#xff1f;可以做什么&#xff1f; 人工智能(Artificial Intelligence): 人工智能的技术发展路线&#xff1a; 产业发展驱动因素&#xff1a;数据、算力、算法 二、人工智能这个工具的使用原理入门 神经网络⭕数学基础 1.神经网络的生物表示 …

SpringMVC:执行原理详解、配置文件和注解开发实现 SpringMVC

文章目录 SpringMVC - 01一、概述二、SpringMVC 执行原理三、使用配置文件实现 SpringMVC四、使用注解开发实现 SpringMVC1. 步骤2. 实现 五、总结注意&#xff1a; SpringMVC - 01 一、概述 SpringMVC 官方文档&#xff1a;点此进入 有关 MVC 架构模式的内容见之前的笔记&a…

小红书kos和kop有什么区别,营销玩法有哪些

相信熟悉媒介传播的朋友&#xff0c;对于kol和koc都不陌生。但随着平台的发展和市场的进步&#xff0c;又出现了kos和kop。那么小红书kos和kop有什么区别&#xff0c;营销玩法有哪些&#xff1f; 一、什么是kos和kop KOS&#xff0c;全称叫做Key Opinion Sales&#xff0c;意思…

安装 PyCharm 2021.1 保姆级教程

作者&#xff1a;billy 版权声明&#xff1a;著作权归作者所有&#xff0c;商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处 前言 目前能下载到的最新版本是 PyCharm 2021.1。 请注意对应 Python 的版本&#xff1a; Python 2: 2.7Python 3: >3.6, <3.11…

APEX后台弱密码增强改造出现的问题及解决方法

为了加强APEX后台密码的安全性和可靠性&#xff0c;对其进行弱密码改造&#xff0c;通过改写登录函数&#xff0c;判断密码可靠性&#xff0c;在密码不符合条件&#xff08;密码长度必须大于8位小于16位&#xff0c;其包含数字、大小写字母与特殊符号&#xff09;时跳转到密码修…

网络基础篇【网线的制作,OSI七层模型,集线器和交换机的介绍,路由器的介绍与设置】

目录 一、网线制作 1.1 工具介绍 1.1.1网线 1.1.2 网线钳 1.1.3 水晶头 1.1.4 网线测试仪 二、OSI七层模型 2.1 简介 2.2 OSI模型层次介绍 2.2.1 结构图 2.2.2 数据传输过程 2.3 相关网站 二、集线器 2.1 介绍 2.2 适用场景 三、交换机 3.1 介绍 3.2 适用场景…

Linux(二)常用命令

文章目录 一、文件管理命令1.1 chmod1.2 chown1.3 cat1.4 cp1.5 find1.6 head1.7 tail1.8 less1.9 more1.10 mv1.11 rm1.12 touch1.13 vim1.14 >和>>1.15 scp1.16 ln1.17 怎么用命令查看日志 二、文档管理命令2.1 grep2.2 wc2.3 echo 三、磁盘管理命令3.1 cd3.2 df3.3…

JMeter常见配置及常见问题修改

一、设置JMeter默认打开字体 1、进入安装目录&#xff1a;apache-jmeter-x.x.x\bin\ 2、找到 jmeter.properties&#xff0c;打开。 3、搜索“ languageen ”&#xff0c;前面带有“#”号.。 4、去除“#”号&#xff0c;并修改为&#xff1a;languagezh_CN 或 直接新增一行&…

MySQL增删改查(查询)

White graces&#xff1a;个人主页 &#x1f649;专栏推荐:Java入门知识&#x1f649; &#x1f649; 内容推荐:《MySQL增删改查(增加)》&#x1f649; &#x1f439;今日诗词:八百虎贲踏江去,十万吴兵丧胆还&#x1f439; ⛳️点赞 ☀️收藏⭐️关注&#x1f4ac;卑微小博主…

网络技术基础与计算思维实验教程_4.1_PSTN和以太网互连实验

实验内容 实验目的 实验原理 关键命令说明 实验步骤 构建以太网 工作区中放置路由器 交换机 PC机 直通线互连PC0和交换机 交换机和路由器 构建PSTN 放置PSTN 放置PC 为路由器安装modem 打开电源 再为终端安装modem 单击路由器选择图形配置 这个IP地址将成为PC0的默认网关地…

时间序列分析

常用数据集 2.monash数据集 官网链接 我们的存储库包含30个数据集&#xff0c;包括公开可用的时间序列数据集(不同格式)和由我们管理的数据集。 DatasetDomainNo: of SeriesMin. LengthMax. LengthCompetitionMultivariateDownloadSourceM1Multiple100115150YesNoYearly Quart…

配置MUX VLAN示例(接入层设备)

一、组网需求 在企业网络中&#xff0c;企业所有员工都可以访问企业的服务器。但对于企业来说&#xff0c;希望企业内部部分员工之间可以互相交流&#xff0c;而部分员工之间是隔离的&#xff0c;不能够互相访问。为了解决上述问题&#xff0c;可在连接终端的交换机上部署MUX …

keil 5 : Error: L6218E: Undefined symbol 问题解决方法小记

1.路径已添加但依旧包找不到定义的错误,这里找不到的是DFP包中的函数 2.点击Manage Run-Time Environment->打开Device->ATC Driver->勾选SPI&#xff08;找到你未定义函数所在的DFP包中的模块&#xff09; 3.编译后&#xff0c;点击Open definition会成功跳转到函数…

ansible的脚本------playbook剧本

playbook组成部分&#xff1a; 1.task 任务&#xff1a;包含要在目标主机上执行的操作&#xff0c;使用模块定义这些操作。每个都是一个模块的调用。2.variables 变量&#xff1a;存储和传递数据。变量可以自定义&#xff0c;可以在playbook当中定义为全局变量&#xff0c;也可…

用C爬取人人文库并分析实现免积分下载资料

最近有个学妹学习遇到问题&#xff0c;想要的学习资料都在文库中&#xff0c;因为资料太多太杂&#xff0c;想要一篇篇找太难了&#xff0c;主要是太浪费精力了。因此&#xff0c;听说这个事情我能解决&#xff0c;立马找到我&#xff0c;给我一杯奶茶就把我收买了&#xff0c;…

4. 可用性

文章目录 4. 第4章 可用性4.1. 可用性一般场景4.2. 可用性策略故障检测&#xff08;Detect Faults&#xff09;故障恢复&#xff08;Recover from Faults &#xff09;故障预防&#xff08;Prevent Faults&#xff09; 4.3. 基于策略的可用性调查表4.4. 可用性模式4.5. 扩展阅读…

云渲染Blender怎么用 Blender云渲染设置教程

作为一个免费且开源的三维创作套件&#xff0c;Blender为独立艺术家和小规模的创意团队提供了一个功能丰富的平台&#xff0c;涵盖了从建模、雕刻到动力学模拟、动画和高级渲染的全套工作流程。随着其支持的特效和视觉质量的不断提升&#xff0c;Blender项目的渲染耗时也显著增…

智能变电站集中监控辅助决策系统解决方案

项目背景 智能变电站是坚强智能电网的重要基础和支撑。它不仅是电网运行数据的采集源头和命令执行单元&#xff0c;而且与其他环节的联系非常紧密&#xff0c;为统一坚强智能电网的安全和优质提供了关键支撑。为了更有效地管理和控制变电站的各种设备和子系统&#xff0c;如视…

防火墙安全策略

目录 一、防火墙种类 二、防火墙流量控制手段 1、包过滤技术&#xff08;传统&#xff09; 2、状态检测技术 &#xff08;1&#xff09;、状态检测机制 三、安全实验 1、拓扑 2、需求 3、配置思路 4、关键配置截图 5、验证 一、防火墙种类 对于防火墙来说就是针对哪…