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

 until循环
 使用于命题为假时执行循环的环境
 命题为假时进入循环;命题为真时退出循环
 或者说是条件不满足时就进入循环的的场景
 从逻辑判断上讲,until和while刚好相反

语法格式:
 until CONDITION; do
 循环体
 done
 进入条件: CONDITION 为false
 退出条件: CONDITION 为true

until循环应用实例:

1,计算1-100之间所有正整数的和

#!/bin/bash

#Author:wangjun
#Contact QQ:183530300
#Version:1.0
#Create time:2016-08-17 17:08:54
#Description:1-100 all positive integer‘s sum

declare -i I=1
declare -i sum=0

until [[ $I -gt 100 ]];do
  let sum+=$I
  let I++
done
echo "1-100 all positive integer‘s sum : $sum"

2,自动扫描1-254网段的所有主机,统计在线主机数与不在线主机数

#!/bin/bash

#Author:wangjun
#Contact QQ:183530300
#Version:1.0
#Create time:2016-08-17 16:30:28
#Description:ping all host and count the number

declare -i online=0
declare -i offline=0
declare -i host=1

until [[ $host -ge 255 ]];do
  ping -c 1 -W 1 10.1.250.$host &> /dev/null && echo "10.1.250.$host is online" && let online=$online+1 || let offline=$offline+1
  let host=$host+1
done
echo "Online hosts number : $online"
echo "Offline hosts number : $offline"

3,生成10个随机数,并找出最大随机数和最小随机数

#!/bin/bash

#Author:wangjun
#Contact QQ:183530300
#Version:1.0
#Create time:2016-08-17 20:44:27
#Description:Random number comparative

minrandom=$RANDOM
maxrandom=$minrandom
declare -i R=1

echo $minrandom

until [[ $R -gt 9 ]];do
  RD=$RANDOM
  echo $RD
  if [[ $RD -gt $maxrandom ]];then
   maxrandom=$RD
  elif [[ $RD -lt $minrandom ]];then
   minrandom=$RD
  fi
  let R++
done
echo "Minrandom is : $minrandom"
echo "Maxrandom is : $maxrandom"

4,打印九九乘法表

#!/bin/bash

#Author:wangjun
#Contact QQ:183530300
#Version:1.0
#Create time:2016-08-16 21:57:22
#Description:99 multiplication tab

declare -i Row=1
declare -i Column=1

until [[ $Row -gt 9 ]];do
  until [[ $Column -gt $Row ]];do
   echo -ne "${Column}x${Row}=$[$Column*${Row}]\t"
 let Column++
  done
  Column=1
  let Row++
  echo
done

5,每隔3秒钟查询系统上已经登录的用户信息,如果发现hacker用户登录,则将登录时间和主机记录于日志/var/log/login.log中,并提示hacker用户退出系统

#!/bin/bash

#Author:wangjun
#Contact QQ:183530300
#Version:1.0
#Create time:2016-08-17 22:36:44
#Description:Monitor whether the hacker user has logged on current system

until who | grep "^hacker\>";do
  echo -e "`date +%T`\thacker user doesn‘t logged on"
  sleep 3
done
echo -e "`date +%T`\thacker user logged on" | tee /var/log/login.log
echo "Please exit current system" | write hacker

时间: 2024-10-12 19:13:42

Shell脚本循环语句——until循环的相关文章

shell脚本判断语句和循环语句

if判断语句 exit跳出判读语句 不加exit的结果 read -n(不换行) 判断是否输入的是数字 read age[[ $age =~ ^[0-9]+$ ]]if [ $? -ne 0 ]; then echo "你输入的不是一个数字" exit 1fi case判断语句 #!/bin/bashcat <<EOF########################################### 欢迎学习shell编程 #######################

Linux中的shell脚本编程---语句控制

概述: shell脚本的语句控制 □前面提到了过程式编程语言有三种过程: 顺序执行:按照顺序一条一条语句执行: 选择执行:按照条件进行选择执行: 循环执行:按照给定的循环条件进行循环执行. □其中,顺序不需要特定的控制,只需按照语句依次执行即可:选择执行,则需要特定的控制语句(如:if,case)来判断执行:循环执行则需要特定的循环控制控制(如:for,while等). 一.使用read 命令来接受输入 □在bash脚本编程过程当中有时程序需要与用户之间进行交互,如提示用户输入一些参数等,此时,

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

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

tar ,cpio打包解压. shell脚本for,while,until循环. rpm包管理,select循环菜单,函数function,yum

tar  tar -cf 路径+文件名字后续.tar  +路径 创建归档压缩 tar cf /testdir/etc.tar /etc/ tar cvf 可以查看解压过程 tar tvf 预览作用 tar xvf 解压文件 tar zcvf /testdir/etc2.tar.gz /etc/ 解压再压缩到指定路径,文件格式 tar jcvf cpio 复制 从或到文件 cpio 命令是通过重定向的方式将文件进行打包备份,还原恢复的工具,它可以解压以".cpio"或者".ta

shell脚本的使用---for循环

shell脚本的循环:重复执行命令 1.for循环 语法 for 变量名称 in 变量值列表 do 命令 done for根据变量值列表中的内容,重复执行命令,直到变量值列中的所有内容都取值完后结束. 取值列表的类型:可以是特定文本文件,命令生成列表 案列: vi user.txt zsan lisi :wq vi useradd_for.sh #!/bin/bash Un=$(cat /root/bin/user.txt) for i in $Un do useradd #i ehco 123

Shell脚本学习笔记-循环结构

1. for循环语句 1.1. 语法格式: for var in list do commands done for ((表达式)) do commands done 1.2 简单示例: #!/bin/sh #从直接列表读取 echo "从直接列表读取" for var in 1 2 3 do echo "$var" done echo "\n" #从变量读取 echo "从变量读取" list="a b c&quo

【Java】switch+for循环语句+while循环+do...while循环+Random产生随机数

1. switch语句 1.1 switch语句结构(掌握) 格式 switch (表达式) {  case 1:  语句体1;  break;  case 2:  语句体2;  break;  ...  default:  语句体n+1;  break; } 执行流程: 首先计算出表达式的值 其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结 束. 最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉.

Linux shell脚本编程入门(二) 循环语句

前面有了变量的概念和逻辑运算符,就可以写判断语句了,不过这里注意中括号的两边必须得留空格,不然报错. 运算符 赋值, 用 let 语句, 如 let "a=1" 算数运算, 支持 +  -  *  /  %(模运算)  **(幂运算) 位运算符, 支持 <<(左移)  >>(右移)  &(按位与)  |(按位或)  ~(按位取反)  ^(按位异或) if / then / else 语句 先举个栗子呗~ #!/bin/bash read var1 if

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

 while循环 适用于命题为真时执行循环的环境 命题为真时进入循环:命题为假时退出循环 或者说是条件满足时就进入循环的场景 语法格式: while CONDITION; do 循环体 done CONDITION:循环控制条件 进入条件:CONDITION为true: 退出条件:CONDITION为false 进入循环之前,先做一次判断:每一次循环之后会再次做判断:条件为"true",则执行一次循环:直到条件测试状态为"false"终止循环 因此:CONDTION