运维脚本while语法
循环的意思就是让程序重复地执行某些语句;
whiler循环就是循环结构的一种,当事先不知道循环该执行多少次,就要用到while循环;
while循环语句的运行过程
使用while循环语句时,可以根据特定的条件反复执行一个命令,直到条件不满足为止;
while会出现死循环的过程,因此循环体内的命令序列内应包括修改测试条件的语句
while语句的语法结构:
注意:
使用while循环语句时,有两个特殊的条件测试操作即true(真)和false(假);
使用true时表示条件永远成立,循环体内的命令序列将会无限执行下去,除非强制终止脚本或使用exit退出脚本;
反之使用false时循环体将不会被执行; ’这两个特殊条件也可以用在if语句的条件测试中
应用实例
使用while语句执行批量添加规范的用户
stu 1 stu 2…….
我们也可以使用while批量添加用户,但是前提是用户的命名必须有规范,有规律否则无法使用while进行创建
vim useradd.sh
#!/bin/bash
user="stu"
i=1
while [ $i -le 20 ]
do
useradd ${user}$i
echo "123456" | passwd --stdin ${user}$i &>/dev/null
echo "${user}$i Users to add success"
let i++
done
首先定义一个用户名的前缀为stu
在定义一个变量用于改变条件
while 当$i 小于等于20 的时候执行下面的命令序列 let i++ 表示每循环一次i的值加1
当循环到21次的时候这个测试条件不成立了,因为21不小于等于20所以直接调到done结束循环
执行的结果
检验:
也可以使用while循环删除
vim userdel.sh
#!/bin/bash
user="stu"
i=1
while [ $i -le 20 ]
do
userdel -r ${user}$i &> /dev/null
echo "${user}$i Users to del success"
let i++
done
执行结果
实战2
针对上诉要求主要设计思路如下
if通过变量RANDOM可获得一个小于2十六次方的随机整数,计算其与1000的余数即可获得0~999的随机价格,反复操作可以通过true作为测试条件,在用户猜出实际价格为止,判断猜测价格与实际价格的过程使用if语句实现,嵌套在while循环内使用变量来计算猜测的次数
例如:
vim caijiage.sh
#!/bin/bash
price=$(expr $RANDOM % 1000)
times=0
echo "The prices of the goods is 0-999,Can you guess what is?"
while true
do
read -p "Please enter your price:" INT
let times++
if [ $INT -eq $price ]
then
echo "Good you guessed it"
echo "You guess the total $times times "
exit 0
elif
[ $INT -gt $price ]
then
echo "Is too high "
else
echo "It's too low "
fi
done
执行脚本的结果
学会for while已经可以编写一些脚本完成简单的系统管理任务了。
1、for :读取不同的变量值,逐个执行同一组命令,直到取值完毕退出,变量值以空格分隔
语法: for 变量值in 取值列表
do
命令
done
2、while :重复测试某个条件,成立则执行,进入下一个循环,直到条件不成立为止
语法: while [ 条件测试 ]
do
命令
添加更改测试条件语句
done
批量添加用户:
i=QS
While [ $i -le $JS ]
do
useradd $BM$i
echo“123456”Ipasswd --stdin $BMSi
let i++
done
while条件为true : 代表永远为真,死循环,必须使用exit或break命令才结束循环
必须进行递增,避免死循环: 方法:
i=expr i + 1
let i=i+1
let i++
3、case :针对变量的不同取值,分别执行不同的命令序列
语法: case 变量值 in
模式1)
命令序列1
;;
模式2)
命令序列2
;;
......
*)
默认命令序列
esac
取值时,中括号[ ],任选其一
横杠—,代表取值范围
竖杠|,代表或者
运维脚本while语法的更多相关文章
- 编写一个可复用的SpringBoot应用运维脚本
前提 作为Java开发者,很多场景下会使用SpringBoot开发Web应用,目前微服务主流SpringCloud全家桶也是基于SpringBoot搭建的.SpringBoot应用部署到服务器上,需要 ...
- (二)SpringBoot应用运维脚本
SpringBoot应用运维脚本 一.获取PID 二.Kill命令 三.nohup命令 四.编写SpringBoot应用运维脚本 4.1全局变量 4.2编写核心方法 4.3Info方法 4.4stat ...
- python常用运维脚本实例
转载 file是一个类,使用file('file_name', 'r+')这种方式打开文件,返回一个file对象,以写模式打开文件不存在则会被创建.但是更推荐使用内置函数open()来打开一个文件 ...
- 转:python常用运维脚本实例
python常用运维脚本实例 转载 file是一个类,使用file('file_name', 'r+')这种方式打开文件,返回一个file对象,以写模式打开文件不存在则会被创建.但是更推荐使用内置函 ...
- python常用运维脚本实例【转】
file是一个类,使用file('file_name', 'r+')这种方式打开文件,返回一个file对象,以写模式打开文件不存在则会被创建.但是更推荐使用内置函数open()来打开一个文件 . 首先 ...
- sql server自动化运维脚本
数据库运维中盛传一个小段子,我误删除了数据库,改怎么办?有备份还原备份,没有备份就准备简历!听起来有趣但发生在谁身上,谁都笑不起来.接触了很多的客户发现90%客户的运维策略都不是很完善.本篇就分享一些 ...
- 运维shell全部语法进阶
Linux运维之shell脚本进阶篇 一.if语句的使用 1)语法规则 1 2 3 4 5 6 7 8 9 if [条件] then 指令 fi 或 if [条件];then ...
- Shell编程案例:修改运维脚本输出效果
1. 需求:每日运维检查脚本dailymonitor.sh显示对服务器测试结果,其中命令 zabbix_get -s 192.168.111.21 -p 10050 -k "net.tcp. ...
- Python运维脚本整理
Python 实现的自动化服务器管理 import sys import os import paramiko ssh = paramiko.SSHClient() ssh.set_missing_h ...
随机推荐
- SQL添加事务处理
--modi by lmt declare @errorSum int --记录错误数 begin Create table #CheckreqAccState(CheckReqID varchar( ...
- selenium在scrapy中的使用、UA池、IP池的构建
selenium在scrapy中的使用流程 重写爬虫文件的构造方法__init__,在该方法中使用selenium实例化一个浏览器对象(因为浏览器对象只需要被实例化一次). 重写爬虫文件的closed ...
- vue 用huilder打包APP时,安卓按返回键就退出App改为按两次再退出App
做vue项目时,用Hbuilder打包APP,在安卓下按返回键就是退出了APP,百度了下.都是使用到MUI来解决的,自己也记录下. 在main.js里面引入mui.js并使用. import mui ...
- js的中文在网页中显示为乱码
最近的毕业设计写道局部检查用户命是否为空和是否符合规范时 发现页面回显的中文为乱码 then 找到一个和我遇到同样问题的人呐 他说“最近在写一个商城网页的时候遇到了一个问题,那就是javascrip ...
- 模仿WC.exe的功能实现--node.js
Github项目地址:https://github.com/102derLinmenmin/myWc WC 项目要求 wc.exe 是一个常见的工具,它能统计文本文件的字符数.单词数和行数.这个项目要 ...
- sql server error 53
主要是计算机名修改了,通过服务器名称,浏览更多,选择“数据库引擎”里面的第一个,就可以登陆了
- sys 模块的应用
1.常见的sys模块的应用: 1.在解释器启动后, argv 列表包含了传递给脚本的所有参数, 列表的第一个元素为脚本自身的名称 argv(命令行参数个数) #!/usr/bin/env python ...
- lr_场景设计之知识点-集合点、loadgenerator
1.controller原理 通过场景设计来模拟用户的真实操作并调用bugen中的脚本,再通过设置的压力机产生压力,在场景运行中实时监控用户的执行情况,tps,响应时间,吞吐量,服务器资源使用情况: ...
- 阿里云Oss对象存储
将文件保存到阿里云上. 1.添加对象存储OSS空间 (新建Bucket) 可以在阿里云后台对象存储里面添加,也可以通过api添加.添加之后设置权限. skd使用. 1安装 Aliyun.OSS.SDK ...
- Tensorflow安装指南
1.关闭所有安全工具!!!!!(非常重要!否则很可能安装失败) 2.下载CUDA 地址https://developer.nvidia.com/accelerated-computing-toolki ...