Shell脚本-----while循环和until循环

while 测试条件

do

语句1

语句2

done

测试条件:条件满足就循环,直到条件不满足就退出循环

while循环如何退出?在循环体中改变测试条件相应的变量值

补充:算术运算符

sum=$[$sum+$i] = sum+=$i

-=

*=

sum+=1 = let sum++

sum--

sam=3

while [ $sam - le 5 ]

do

let sam++

done

例子:用户随机输入一个数值,就循环几次echo "test" >> /tmp/123

 #!/bin/bash
     a=1
     read -p "Please enter a number:"  sam
     while [ $a -le $sam ]
     do
          echo "test" >> /tmp/123
          let a++
     done

例子2:当前系统所有用户,ID号为偶数就输出用户名和shell

#!/bin/bash
file=/etc/passwd
while read line  read 会自动将$file这个文件中的每一行,将读取的每一行的值付给$line
do
        id=$(echo $line | cut -d: -f3)
         if [ $[$id%2] -eq 0 ]                            $id除于2取余等于0 就执行
            then
                username=$(echo "$line" |cut -d: -f1)
                shell=$(echo "$line" | cut -d: -f7)
                echo -e "UserName:$username\nShell:$shell\n"
        fi
done < $file

列子:将用户输入的字符转换成大写,字符quit退出脚本

#!/bin/bash

read -p "A string:" string
while [ "$string" != "quit" ]               如果用户输入的不是quit就会一直循环直到字符串是quit
     do
           echo "$strin" | tr "a-z" "A-Z"
          read -p "New String [ quit for exit] :" string
     done

------------------------------------------------------------------------------------

until循环 测试条件

do

语句1

语句2

done

条件不满足循环,直到满足就退出循环

列子:将用户输入的字符转换成大写,字符quit退出脚本

#!/bin/bash

read -p "A string:" string

until [ "$string" == "quit" ]              如果用户输入的是a.$string=quit 条件不满足就继续循环,知道$string=quit条件满足时退出

do

echo "$strin" | tr "a-z" "A-Z"

read -p "New String [ quit for exit] :" string

done

例子2:每隔5秒查看hadoop用户是否登录,显示登录并退出;否则显示当前时间,并输出hadoop尚未登录

#!/bin/bash
until who | grep "^hadoop" &> /dev/null      
do        
    echo "$(date) hadoop not login"        
    sleep 5done
dong        
    echo "hadoop login"        
    exit 0

例子3:显示如下菜单,让用户选择,并输出相关信息,当用户选择完成,显示相应信息,不退出,让用户重新选择,直到输入quit退出

cat << EOF
d|D) show disk usages
m|M) show memory usages
s|S) show swap usages
*)quit
EOF

---------------------------------------

#!/bin/bash
cat << EOF
d|D) show disk usages
m|M) show memory usages
s|S) show swap usages
*)quit
EOFread -p "Please Input Device :" usages
until [ "$usages" ==  "quit" ]
do  
    case $usages in        
        d|D)               
            df -h                
            read -p "Please Input     Device :" usages
            ;;
        m|M)                
            free -m | head -2                
            read -p "Please Input Device :" usages                
            ;;        
            s|S)                
                free -m | tail -1                
                read -p "Please Input Device :" usages                    
                ;;        
                *)                
                echo "Input error"                
                exit 7  esacdone
                ;;
         esac
dong

Shell脚本-----while循环和until循环

时间: 2024-10-09 06:16:23

Shell脚本-----while循环和until循环的相关文章

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

Shell脚本之for、while循环语句和case分支语句

shell作为一种脚本编程语言,同样包含循环.分支等其他程序控制结构,从而轻松完成更加复杂.强大的功能 使用for循环语句 在工作中,经常遇到某项任务需要多次执行,而每次执行仅仅是处理对象不一样,其他命令都相同.使用简单的if语句已经难以满足要求,编写全部代码将困难重重,而for循环语句将很好的解决类似的问题 1. for语句的结构 使用for循环语句时,需要指定一个变量及可能的取值列表,针对每一个不同的取值重复执行相同的命令,直到变量值用完退出循环 案例1:根据姓名列表批量建立用户 [[ema

Linux | shell脚本-条件判断if和循环语句for

一.简介 上个章节中,我们学习了判断语句和运算语句.shell脚本中,这些判断语句一般都是和if.else.elif.for和while等语句一起使用. 在脚本编写中,条件判断语句常常用于多种情况的判断,符合哪一种情况就执行哪一种的命令. 二.shell条件判断语句:if 1.流程控制:if单分支结构 语法: if 条件判断:then 条件判断成功时执行的操作 ... fi 例子: 结合整数值比较-eq:检查主机是否在线 vim test1.sh运行结果:2.流程控制:if双分支结构 语法: i

shell脚本之位运算+for循环+返回值承接

用shell脚本实现某个寄存器的某几位设置 坑位1: 开发板上不认(ubuntu上可以) for (( i=0;i<6;i++ )) do done 换成: for i in `seq 0 6` do done 坑位2: 返回值承接用#?时默认只截取低8位 setbits $1 $2 $3 $4regv=$?printf "regv= %#x\n" $regv 发现只剩低八位 所以,换种承接方式吧: regv=`regread $1` 这种方式是直接将命令执行或在屏幕上输出的东西

shell脚本编程学习笔记-while循环

1.当型循环和直到型循环 While使用的不多,一般守护进程程序或始终循环执行会用,其他循环运算都用for代替. 1.1 当型和直到型循环语法 (1)while条件语句 语法: While 条件 do 指令-. done 手机充值:发短信扣费,充值100,每次扣1角5,当费用低于1角5分就不能发了. (2)until条件语句 语法: until 条件 do 指令- Done 提示:只循环一次,应用场景不多,了解就好. 1.2 当型和直到型循环基本范例 休息命令:sleep休息1秒,usleep1

shell脚本(三)while循环语句

理论部分: 循环的意思就是让程序重复地执行某些语句; whiler循环就是循环结构的一种,当事先不知道循环该执行多少次,就要用到while循环; while循环语句的运行过程 使用while循环语句时,可以根据特定的条件反复执行一个命令,直到条件不满足为止; while会出现死循环的过程,因此循环体内的命令序列内应包括修改测试条件的语句 while语句的语法结构: 注意: 使用while循环语句时,有两个特殊的条件测试操作即true(真)和false(假); 使用true时表示条件永远成立,循环

Shell脚本 (三)for循环 while循环 case分支语句

################for循环语句的结构#############使用for循环语句时,需要指定一个变量及可能的取值列表,针对每个不同的取值重复执行相同的命令序列,直到变量值用完退出循环.在这里,取值表 称为for语句的执行条件,其中包括多个属性相同的对象.需要预先指定(如通讯录.IP黑名单)·语法样式for 变量名 in 取值列表do 命令序列done·#####for循环语句列子####需求:根据人事部门给出的员工姓名拼音列表,在Linux服务器中添加相应的用户账号,初始密码均设

shell脚本编程基础之for循环

循环结构 循环需要有进入条件和退出条件,如果没有退出条件,则就会一直循环下去 for 变量 in 列表:do 循环体 done 生成列表及示例 {1..100}:生成1到100的整数列表 `command`:使用命令生成列表 Example1: #!/bin/bash # declare -i SUM=0 #指明SUM变量是一个整数型变量:变量的值为整数:指定求和变量的初始值为0 for I in {1..100};do let SUM=$[$SUM+$I] #指定SUM变量是一个整数型变量 d

shell脚本笔记三:while循环 until循环

while CONDITION;do statment done until CONDITION;do statment done 练习: 写一个脚本:每隔五秒钟就看下jt有没有登陆,没有登陆则继续执行,登陆了则停止命令

SHELL脚本之for、while循环经典例题

1.创建用户的脚本:(标准版本)[ ! -f "$1" ] && echo "$1 file is not exit ! " && exitSTUDEN_FILE = $ 1for USER in cat $STUDEN_FILE;doif id ${USER} &> /dev/null;thenecho " 用户: ${USER}已存在,创建失败 "elseuseradd ${USER}echo $