循环语句脚本

常用的循环语句

for循环:

形式一:
for 变量名 in 列表;do
??循环体
done
执行机制:
依次将列表中的元素赋值给“变量名”; 每次赋值后即执行一次循环体; 直
到列表中的元素耗尽,循环结束

形式二:
for ((控制变量初始化;条件判断表达式;控制变量的修正表达式));do
??循环体
done
控制变量初始化:仅在运行到循环代码段时执行一次
控制变量的修正表达式:每轮循环结束会先进行控制变量修正运算,而后再做条件判断

example:

①实现1到100之和
形式一:

形式二:

②实现1到100的奇数和

③打印随机色的多行 *

效果

④打印打印九九乘法表
形式一:

形式二:

while循环:

while CONDITION; do
?? 循环体
done
CONDITION:循环控制条件;进入循环之前,先做一次判断;每一次循环之后会再次做判断;条件为“true”,则执行一次循环;直到条件测试状态为“false”
终止循环

example:

①自动打印10个随机数字并输出,显示其中最大和最小值

效果

②打印国际象棋棋盘

while循环的特殊用法(遍历文件的每一行)
while read line; do
?? 循环体
done < /data/test.txt
依次读取/data/test.txt文件中的每一行,且将行赋值给变量line

example:

读取name.txt文件,逐行做创建用户处理

数组:

数组元素的赋值
(1) 一次只赋值一个元素
ARRAY_NAME[INDEX]=VALUE
weekdays[0]="Sunday"
weekdays[4]="Thursday"
(2) 一次赋值全部元素
ARRAY_NAME=("VAL1" "VAL2" "VAL3" ...)
(3) 只赋值特定元素
ARRAY_NAME=([0]="VAL1" [3]="VAL2" ...)
(4) 交互式数组值对赋值
read -a ARRAY

引用数组元素br/>${ARRAY_NAME[INDEX]}
注意:省略[INDEX]表示引用下标为0的元素
引用数组所有元素
${ARRAY_NAME[*]}
${ARRAY_NAME[@]}
数组的长度(数组中元素的个数)br/>${#ARRAY_NAME[*]}
${#ARRAY_NAME[@]}
删除数组中的某元素:导致稀疏格式
unset ARRAY[INDEX]
删除整个数组
unset ARRAY

example:

①检查磁盘空间是否超过80%的利用率

②生成10个随机数,比大小

扫描地址段,迸发

[[email protected] data]# vim scan_host.sh
#!/bin/bash
NET=172.22
for SUBNET in {0..255};do
{
?? for HOST in {1..254};do
?? ?? { ping -c1 -W1 $NET.$SUBNET.$HOST &> /dev/null && echo $NET.$SUBNET.$HOST is up;
}&
?? done
}&
?? wait
done
wait
echo "scan host is finished"
[[email protected] data]# bash scan_host.sh
172.22.0.6 is up
172.22.0.1 is up
172.22.0.7 is up
172.22.0.50 is up
172.22.0.100 is up
172.22.0.111 is up
172.22.0.154 is up
...

监控httpd服务

[[email protected] data]# vim monitor_httpdwhile.sh
#!/bin/bash
SLEEPTIME=30
SERVICE=httpd
LOG=/var/log/monitor
$SERVICE.log
while true;do
?? if killall -0 $SERVICE &>/dev/null;then
?? ?? true
?? else
?? ?? systemctl restart $SERVICE
?? ?? echo "AT date +‘%F %T‘ $SERVICE is restart" | tee -a $LOG | mail -s warning
root
?? fi
?? sleep $SLEEPTIME
done
[[email protected] ~]# bash monitor_httpd_while.sh
打开workspace2,或者用xshell,再打开同一个主机。杀死进程,查看日志。
[[email protected] ~]# killall httpd
[[email protected] ~]# tail -f /var/log/monitor_httpd.log
AT 2019-05-20 09:47:12 httpd is restart
AT 2019-05-20 09:47:46 httpd is restart
AT 2019-05-20 09:48:46 httpd is restart

?于100次IP的,丢?防?墙,拒绝访问

[[email protected] data]# vim deny_while.sh
#!/bin/bash
sed -nr ‘/^ESTAB/s#. ([0-9.]+):[0-9]+.$#\1#p‘ ss.log|sort |uniq -c |while read times ip;do
?? if [ $times -gt 100 ];then
?? ?? iptables -A INPUT -s $ip -j REJECT
?? fi
done

循环语句脚本

原文地址:https://blog.51cto.com/14322593/2409541

时间: 2024-10-27 16:39:11

循环语句脚本的相关文章

shell脚本中用到的条件和循环语句

本博文介绍一下shell脚本中常用的条件和循环语句: 条件语句: 循环语句: 示例: if语句: eg1. eg2. 2.case语句: 简单的case语句: 配合循环的case语句: 3.for语句: 简单的for语句:eg1. eg2. 和case搭配的for语句:eg3. 4.while语句: eg1. eg2. 5.util语句: 6.select语句:

Shell脚本循环语句——for循环

学习脚本就是为了方便我们运维工作,而对运维人员从来讲,有很多工作也是需要重复执行的,比如我们管理用户帐户时就需要批量创建和删除用户帐户.而此时如果使用系统自带的useradd或者userdel去操作的话,就只能机械式的一个一个创建,一个一个的删除.那我们是不是就可以考虑写一个程序,让它自动化的去创建了.此时,我们的循环执行概念也就出来了.循环就是让程序按照一定的条件反复的执行相关操作,直到不在满足循环条件时结束. 循环语句常见分类: 1,for语句 2,while语句 3,until语句 循环体

shell脚本编程之循环语句

在运行脚本时重复执行一系列的命令是很常见的,这时我们就需要使用循环语句来达到这个目的. 一.for命令 格式:for 变量 in 列表:do 循环体 done for命令会遍历列表中的每一个值,并且在遍历完成后退出循环. 列表形式有以下几种: 1.在命令中定义的一系列的值: 2.变量: 3.命令: 4.目录: 5.文件. 实例1: 上例中使用{初始值..结束值}格式来表示一个区间的数值. 实例2:以变量作为列表: 实例3:用命令生成列表: 上例中使用seq命令来生成列表,seq命令的格式为:se

1-23-shell脚本之-if流程控制语句和for循环语句的使用

大纲: 1.逻辑判断 2.if流程控制语句 3.for循环控制语句   ---------------------------------------------- 在开始之前,先了解一下逻辑判断符号: && 与.|| 或.! 非 A && B  必须A,B同时成立,才能通过判断 ---> 判断流程:先执行A判断其是否成立,若成立,则继续执行B,判断其是否成立 ---> 若不成立,则直接结束,不再执行B A || B  A.B有一个成立,即可通过判断 !A   

Linux基础之bash脚本进阶篇-循环语句(for,while,until)及其特殊用法

什么是循环语句.死循环? 循环语句:将一段代码重复执行0.1或多次:它有进入条件与退出条件. 重复运行多少次?我们如何设定循环语句的重复次数? 为了设定循环语句的重复次数于是就有了进入条件与退出条件. 进入条件:条件满足时进入循环. 退出条件:不符合条件退出循环. 一种特殊的循环:死循环 死循环:在编程中,一个无法靠自身的控制终止的循环称为"死循环".死循环的出现有两种情况: 1.因程序需要刻意写的:2.因程序员的失误造成的. 第二种的死循环通常会造成比较严重的程序错误,甚至会因此而影

hell脚本编写 之 条件选择,条件判断,循环语句

1 概述 编写shell脚本,一般离不开条件选择,条件判断以及循环语句.掌握这三个语法,将大大提高脚本的编写效率,使得脚本编写更加灵活,完成X相对复杂的工作 2 条件选择if语句 if语句选择执行,逐条件进行判断,第一次遇为"真"条件时,执行其分支,而后结束整个if语句 if是根据判读条件的命令的退出状态来执行命令,if语句可嵌套 单分支 if 判断条件;then 条件为真的分支代码 fi 双分支 if 判断条件; then 条件为真的分支代码 else 条件为假的分支代码 fi 多分

Shell脚本的条件控制和循环语句

条件判断:if语句 语法格式: if [ expression ] then Statement(s) to be executed if expression is true fi 注意:expression 和方括号([ ])之间必须有空格,否则会有语法错误. if 语句通过关系运算符判断表达式的真假来决定执行哪个分支.Shell 有三种 if ... else 语句: if ... fi 语句 if ... else ... fi 语句 if ... elif ... else ... f

ASP教程:ASP脚本循环语句

在本文上两篇中,我们学习了脚本语言 VBScript 的变量.函数.过程和条件语句,本篇将继续给大家介绍 VBScipt 的循环语句,并对脚本语言在 ASP 中的应用加以总结. 如果有人告诉你学习 ASP 不需要任何编程知识,那么他错了;如果我告诉你学习 ASP 必须掌握一门编程语言,那么我错了.ASP 动态服务器页面环境的特点就在于它是通过一种或几种脚本语言而写成的,脚本语言可以看作是编程语言的简化版,它易于学习和掌握,这给广大动态网站的设计者们提供了相当大的便利.可以这么说 : 脚本语言运用

linux下Bash编程循环语句特殊用法之编写脚本(十)

linux下Bash编程while语句特殊用法之编写脚本(十) 1.循环控制: break:中断整个循环语句,即退出循环后执行脚本后面的语句 continue:中断当前本次循环,提前进入下一轮循环 exit:结束脚本运行 2.while死循环,即当不知道循环多少次时 格式 : while :; do 循环语句 done 3.while从输入重定向文件中每行读取并赋值给read变量 格式:  while read LINE;do 循环语句 done < 路径文件 4.实例脚本 4.1.找出/etc