精华内容
下载资源
问答
  • while条件循环语句是一种让脚本根据某些条件一直循环执行的命令语句,while语句相对于Java种的while语句来说相对于简单,而相对与python中的while语句来说又相对与复杂些,下面我们来看看它的语法格式是什么样子的吧...

    while条件循环语句是一种让脚本根据某些条件一直循环执行的命令语句,while语句相对于Java种的while语句来说相对于简单,而相对与python中的while语句来说又相对与复杂些,下面我们来看看它的语法格式是什么样子的吧。

    while  条件测试操作
    do
    命令序列
    done 收尾

    下面呢,博主就根据实例来讲解一下while语句的用法吧,假设现在有一个商品,商品的价格区间呢在0-1000元之间,首先假设商家输入了价格,然后用户在来猜价格,当猜大了时提示大了大了,小了时提示小了小了,当猜中中,提示价格,同时提示一共猜了多少次。

    #!/bin/bash
    read -p "该商品的价格是多少:" weijia
    echo $weijia
    echo = "商品的价格在1-1000之间,你猜猜是多少"
    cat=0
    while true
    do
    read -p "请输入商品的价格" jiage
    let cat++
    if [ $jiage -eq $weijia ] ;
    then
    echo "恭喜你答对了"
    echo "商品的价格为 $jiage,你一共答了$cat次"
    exit 0
    elif [ $jiage -gt $weijia ] ;
    then
    echo "高了搞了"
    else
    echo "低了低了"
    fi
    done
    

    在代码中每次循环到 let cat++则表示没循环一次个数加1.执行结果如下所示。以上就是while语句的基本用法,是不是很简单啊。

    展开全文
  • while循环 也称为前测试循环语句,重复次数是利用一个条件来控制是否继续重复执行这个语句。为了避免死循环,必须保证循环体中包含循环出口条件即表达式存在退出状态为非0的情况。 (1)计数器控制的while循环(注意...

    while循环
    也称为前测试循环语句,重复次数是利用一个条件来控制是否继续重复执行这个语句。为了避免死循环,必须保证循环体中包含循环出口条件即表达式存在退出状态为非0的情况。

    (1)计数器控制的while循环(注意代码中的空格)

    #!/bin/bash  
      
    sum=0  
      
    i=1  
      
    while (( i <= 100 ))  
    do  
         let "sum+=i"  
         let "i += 2"     
    done  
      
    echo "sum=$sum"  
    
    

    指定了循环的次数500,初始化计数器值为1,不断测试循环条件i是否小于等于100。在循环条件中设置了计数器加2来计算1~100内所有的奇数之和。
    (2)结束标记控制的while循环(注意每一个空格)
    设置一个特殊的数据值(结束标记)来结束while循环。
    //算是找数字的游戏吧,只不过数字得自己写

    #!/bin/bash  
      
    echo "Please input the num(1-10) "  
    read num  
      
    while [[ "$num" != 4 ]]  
    do   
       if [ "$num" -lt 4 ]  
       then  
            echo "Too small. Try again!"  
            read num  
       elif [ "$num" -gt 4 ]  
       then  
             echo "To high. Try again"   
             read num  
       else  
           exit 0  
        fi  
    done   
      
    echo "Congratulation, you are right! "  
    

    例:通过结束标记控制实现阶乘的操作
    计算阶乘的例子

    #!/bin/bash  
      
    echo "Please input the num "  
    read num  
      
    factorial=1  
      
    while [ "$num" -gt 0 ]  
    do  
        let "factorial= factorial*num"  
        let "num--"  
    done  
      
    echo "The factorial is $factorial"  
    

    (3)标志控制的while循环
    使用用户输入的标志值来控制循环的结束(避免不知道循环结束标志的条件)。

    #!/bin/bash  
      
    echo "Please input the num "  
    read num  
      
    sum=0  
    i=1  
      
    signal=0  
      
    while [[ "$signal" -ne 1 ]]  
    do  
        if [ "$i" -eq "$num" ]  
        then   
           let "signal=1"  
           let "sum+=i"  
           echo "1+2+...+$num=$sum"  
        else  
           let "sum=sum+i"  
           let "i++"  
        fi  
    done  
    

    标志控制的while循环求1~n的累加和,循环变量值小于100执行else累加同时循环变量加1,直到循环变量值等于100将标志值设置为1,并输出。
    标志控制的while循环与结束标记控制的while循环的区别是用户无法确定无法确定结束标志,只能程序运行后确定结束标志。两者也可以相互转化。
    (4)命令行控制的while循环
    使用命令行来指定输出参数和参数个数,通常与shift结合使用,shift命令使位置变量下移一位($2代替$1、$3代替2使2,并使#变量递减),当最后一个参数显示给用户,KaTeX parse error: Expected 'EOF', got '#' at position 1: #̲会等于0,*也等于空。

    #!/bin/bash  
      
    echo "number of arguments is $#"  
      
    echo "What you input is: "  
      
    while [[ "$*" != "" ]]  
    do  
        echo "$1"  
        shift  
    done  
    

    $num: num为从1开始的数字,$1是第一个参数,$2是第二个参数…
    $*: 所有的位置参数(作为单个的字符串)
    $#: 传入脚本的参数的个数

    循环条件可以改写为while[[ “$#” -ne 0 ]],等于0时退出while循环

    until循环
    until命令和while命令类似,while能实现的脚本until同样也可以实现,但区别是until循环的退出状态是不为0,退出状态是为0(与while刚好相反),即whie循环在条件为真时继续执行循环而until则在条件为假时执行循环。

    #!/bin/bash  
      
    i=0  
      
    until [[ "$i" -gt 5 ]]    #大于5  
    do  
        let "square=i*i"  
        echo "$i * $i = $square"  
        let "i++"  
    done  
    
    展开全文
  • linux shell if,while,等条件判断

    千次阅读 2019-03-15 14:37:16
    bash中如何实现条件判断? 条件测试类型: 整数测试 字符测试 文件测试 一、条件测试的表达式: [ expression ] 括号两端必须要有空格 [[ expression ]] 括号两端必须要有空格 test expression 组合测试条件: -a: ...

    转自:http://lovelace.blog.51cto.com/1028430/1211353

    bash中如何实现条件判断?
    条件测试类型:
    整数测试
    字符测试
    文件测试

    一、条件测试的表达式:
    [ expression ] 括号两端必须要有空格
    [[ expression ]] 括号两端必须要有空格
    test expression
    组合测试条件:

    -a: and
    -o: or
    !:  非
    

    二、整数比较:

    -eq 测试两个整数是否相等
    -ne 测试两个整数是否不等
    -gt 测试一个数是否大于另一个数
    -lt 测试一个数是否小于另一个数
    -ge 大于或等于
    -le 小于或等于
    

    命令间的逻辑关系

    逻辑与:&&
    
        第一个条件为假 第二个条件不用在判断,最总结果已经有
        第一个条件为真,第二个条件必须得判断
    
    逻辑或:||
    

    三、字符串比较

    == 等于  两边要有空格
    != 不等
    >  大于
    <  小于
    

    四、文件测试

    -z string 测试指定字符是否为空,空着真,非空为假
    -n string 测试指定字符串是否为不空,空为假 非空为真
    -e FILE 测试文件是否存在
    -f file 测试文件是否为普通文件
    -d file 测试指定路径是否为目录
    -r file 测试文件对当前用户是否可读
    -w file 测试文件对当前用户是否可写
    -x file 测试文件对当前用户是都可执行
    -z  是否为空  为空则为真
    -a  是否不空
    

    五、if语法

    if 判断条件 0为真 其他都为假

    .单分支if语句
    

    if 判断条件;then
    statement1
    statement2

    fi

    .双分支的if语句:
    

    复制代码

    if 判断条件;then
    statement1
    statement2

    else
    statement3
    statement4
    fi

    复制代码

    Note:
    if语句进行判断是否为空
    [ "$name” = “” ]
    等同于

    [ ! “name&quot;][z&quot;name&quot; ] [ -z &quot;name” ]

    Note:
    使用if语句的时候进行判断如果是进行数值类的判断,建议使用let(())进行判断,对于字符串等使用test[ ] or [[ ]] 进行判断
    (())中变量是可以不使用$来引用的

    example:表述数字范围的时候 可以使用if可以是使用case

    if [ $x -gt 90 -o $x -lt 100 ]
    case $x in
    100)
    9[0-9])

    这个语句的意思是如果$name为空,那么X=X成立折执行下面的结果;

    if [ “X$name” != “x” ]

    写脚本的时候很多时候需要用到回传命令,$?如果上一个命令执行成功,回传值为0,否则为1~255之间的任何一个

    0为真
    非0为假
    

    条件测试的写法:

    1、执行一个命令的结果
    if grep -q “rm” fs.sh;then

    2、传回一个命令执行结果的相反值
    if !grep -q “rm” fs.sh;then

    3、使用复合命令((算式))
    if ((a>b));then

    4、使用bash关键字 [[判断式]]
    if [[ str > xyz ]];then

    5、使用内置命令:test 判断式
    if test “str” > “xyz”;then

    6、使用内置命令:[判断式] 类似test
    if [ “str” > “xyz” ];then

    7、使用-a -o进行逻辑组合
    [ -r filename -a -x filename ]

    8、命令&&命令
    if grep -q “rm” fn.sh && [ $a -lt 100 ];then

    9、命令||命令
    if grep -q “rm” fn.sh || [ $a -lt 100 ];then

    示例脚本(

    写一段脚本,输入一个测验成绩,根据下面的标准,输出他的评分

    成绩(A-F)。

    A: 90–100

    B: 80–89

    C: 70–79

    D: 60–69

    F: <60


    复制代码

    #/bin/bash
    #Verson:0.1
    #Auther:lovelace
    #Pragram:This pragram is calculation your grade
    #import an argument
    read -p “Please input your grade:” x
    declare -i x
    #jugemet xvalueisnoneornotif[&quot;x value is none or not if [ &quot;x" == “” ];then
    echo “You don’t input your grade…”
    exit 5
    fi
    #jugement the gread level
    if [[ “KaTeX parse error: Expected 'EOF', got '&' at position 13: x" -ge "90" &̲& "x” -le “100” ]];then
    echo “Congratulation,Your grade is A.”
    elif [[ “KaTeX parse error: Expected 'EOF', got '&' at position 13: x" -ge "80" &̲& "x” -le “89” ]];then
    echo “Good,Your grade is B.”
    elif [[ “KaTeX parse error: Expected 'EOF', got '&' at position 13: x" -ge "70" &̲& "x” -le “79” ]];then
    echo “Ok.Your grade is C.”
    elif [[ “KaTeX parse error: Expected 'EOF', got '&' at position 13: x" -ge "60" &̲& "x” -le “69” ]];then
    echo “Yeah,Your grade is D.”
    elif [[ “$x” -lt “60” ]];then
    echo “Right,Your grade is F.”
    else
    echo “Unknow argument…”
    fi

    复制代码

    执行结果:
    复制代码

    [root@lovelace if]# ./grade.sh
    Please input your grade:
    You don’t input your grade…
    [root@lovelace if]# ./grade.sh
    Please input your grade:53
    Right,Your grade is F.
    [root@lovelace if]# ./grade.sh
    Please input your grade:88
    Good,Your grade is B.

    复制代码

    总结:条件判断在shell语句中经常用到,需要熟练掌握,在此基础上才能练就一手很好的脚本编写能力。祝各位每天都能获得很大的进步…

    展开全文
  • 2.while 条件测试 ; do   循环体 done   3.until 测试条件 ; do   循环体 done   4.bash 编程之组合测试条件   逻辑与 :多个条件同时满足   [ condition ] &&...
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    1.Raid (redandent array of independent disks)
        软件rai md 可以组合任何块设备
        mdadm [mode <raiddevice> [option] <component_device>
         
        mdadm 模式化工具
            -A 装配模式
            -C 创建模式
            -F 监控模式
            -D 显示阵列详细信息
            管理模式
                -f 设备损坏
                -r 设备移除
                -a 替换设备
                 
             -C 创建模式  
                 -n# 用于创建raid的设备个数
                 -x# 热备盘的个数
                 -l 指定raid级别
                 -a=--auto yes  自动为创建的raid设备创建文件
                  
       eg:mdadm -C /dev/md0 -a yes -l 0 -n 2 /dev/sdb{1.2} 
        
        
    2.while 条件测试 ; do
        循环体
    done
     
    3.until 测试条件 ; do
        循环体
    done
     
    4.bash 编程之组合测试条件
        逻辑与 :多个条件同时满足
        [ condition ] && [ condition2]
        [ condition -a condition2 ]
        [[ condition && condition2 ]]
         
        前两个使用单或双括号都可,但是&&不允许用于单括号中,所以第三种能使用双括号
         
        逻辑或
        [ condition ] || [ condition2 ]
        [ condition ] -o [ condition2 ]
        [[ condition || condition2 ]]
        第三种只能使用双括号
         
        !(条件1 或 条件2)= !条件1 并且 !条件2
        !(条件1 并且 条件2) = !条件1 或 !条件2




















    本文转自wanglm51051CTO博客,原文链接:http://blog.51cto.com/studyit2016/1785354 ,如需转载请自行联系原作者

    展开全文
  • 这几天学习shell脚本随着学习的深入发现有些细节有点混,尤其是在条件语句上面的混淆,现在把自己的总结如下: 1 IF/ELSE的条件语句  在自己接触到的教材和网上材料认识到,主要还是依靠test语句来进行判断...
  • linux系统下while命令是一个循环作用的...1.linux while命令简介while循环:适用于循环次数未知的场景,要有退出条件,否则就成为死循环。2.linux while命令格式语法:while CONDITION; dostatement...done3.linux w...
  • 判断局域网主机存活脚本(主要吸取判断方法,利用until判断,避免多次使用if条件判断)#!/bin/bash declare -i i=0 declare -i j=1 #++++++++++++++++++++利用until判断用户输入是否合法++++++++++++++++++++++++++...
  • 2.使用while循环结构 问题 本案例要求编写三个使用while循环...while循环属于条件式的执行流程,会反复判断指定的测试条件,只要条件成立即执行固定的一组操作,直到条件变化为不成立为止。所以while循环的条件一...
  • linux shell有一套自己的流程控制语句,其中包括条件语句(if),循环语句(for,while),选择语句(case)。下面我将通过例子介绍下,各个语句使用方法。一、shell条件语句(if用法)if语句结构[if/then/elif/else/fi]if ...
  • LINUX 使用while循环结构

    千次阅读 2019-06-04 07:46:41
    问题 本案例要求编写三个使用...while循环属于条件式的执行流程,会反复判断指定的测试条件,只要条件成立即执行固定的一组操作,直到条件变化为不成立为止。所以while循环的条件一般通过变量来进行控制,在循环体内...
  • Linux shell while循环语句

    千次阅读 2019-04-01 19:32:44
    for :明确循环次数 while :不确定循环换次数 while循环 (1) while CONDITION;...改变循环条件真假的语句> done 编写脚本,计算1--100的和 #!/bin/bash # sum=0 i=1 while [ $i -le 100 ];do le...
  • bash while循环可以定义为控制流语句,只要所应用的条件为真,该语句就允许重复执行给定的命令集。例如,可以运行多次echo命令,也可以仅逐行读取文本文件,然后使用Bash中的while循环处理结果。Bash While循环语法...
  • while ( [ "$a" = "a" ] || [ "$a" = "b" ] ) do done   转载于:https://www.cnblogs.com/liushuhe1990/p/10173940.html
  • elif [ $1 == "linux" ];then  echo "Welcome $1" else  echo "You are not allowed!" fi   二、 for循环  生成1-5序列 第一种: [root@localhost mnt]# awk 'BEGIN{for(i=1;i;i++){print ...
  • Linux命令之while - Bash中的While循环

    千次阅读 2013-06-23 14:42:42
    Linux命令之while - Bash中的While循环   用途说明 while循环是Shell中常用的语法结构,它与其他编程语言中的while有些类似,只是写法有些不一样罢了。 常用格式 格式一 while 条件; do  ...
  • while语句 ​ while循环用于不断执行一系列命令,也用于从输入文件中读取数据;命令通常为测试条件。其格式为: while expression do    … done 命令执行完毕,控制返回循环顶部,从头开始直至测试条件为...
  • linux命令:while循环

    2017-11-16 17:54:00
    while循环:适用于循环次数未知的场景,要有退出条件,否则就成为死循环。 1.命令格式: 语法: while CONDITION; do statement ... done 2.命令功能: while循环:适用于循环次数未知的场景,要有退出条件,...
  • linux shell有一套自己的流程控制语句,其中包括条件语句(if),循环语句(for,while),选择语句(case)。下面我将通过例子介绍下,各个语句使用方法。 一、shell条件语句(if用法) if语句结构[if/then/elif/...
  • Linux Gvim shell while循环

    2019-09-30 13:00:13
    命令通常为测试条件#格式如下:#while expression#do# Statement to be executed if expression is true#done#命令执行完毕,控制返回循环顶部,从头开始执行至测试条件为假#例:如果COUNTER小于5,那么返回true。...
  • linux 命令 --while

    2019-01-02 17:59:00
    while 循环来讲,只要条件判断式成立,循环就会一直进行,直到条件判断式不成立,循环才会停止。 例如: 循环从1加到100 #!/bin/bash a=1 b=0 while [ "$a" -le 100 ] do b=$[$b+ $a] a=$[$a + 1] do...
  • Linux下shell编程的while循环基本语法:while 条件测试do命令done条件测试为true时命令将会一直执行,直到条件为false,循环退出。例如:#!bin/bash#测试while循环#auth:odyseecount=1while ((count<=10))do echo ...
  • 按照文件类型进行判断 通过$?来查看是否正确执行 按照文件权限进行判断 不会分u g o是谁有权限只要有一个就可以了 两个文件之间进行比较 两个整数之间进行比较 ...多重条件判断 ...
  • **while循环 ** 若条件为真就继续执行,反之跳出循环。 该脚本只能接收数字,如果输入数字以外的字符,脚本就会奔溃并报错,并判断条件一定跳到兜底,输出“太低了”。 case语句

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 738
精华内容 295
关键字:

linuxwhile条件

linux 订阅