美文网首页
shell中的判断语句和循环语句

shell中的判断语句和循环语句

作者: come_on | 来源:发表于2018-08-28 17:10 被阅读9次

    if语句

    if语句与其他语言中的类似,不过不需要大括号,在表达式后面需要添加个关键字then

    a=10
    b=20
    
    if [ $a == $b ]
    then
        echo "a is equal to b"
    elif [ $a -gt $b ]
    then
        echo "a is greater than b"
    elif [ $a -lt $b ]
    then
        echo "a is less than b"
    else
        echo "I am just a soso"
    fi
    
    
    num1=$[2*3]
    num2=$[1+5]
    if test $[num1] -eq $[num2]
    then
    echo 'The two numbers are equal!'
    else
    echo 'The two numbers are not equal!'
    fi
    

    Shell中的 test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试,之前的这三个运算符都可以

    case...esac语句

    case...esac语句,与其他语言中的switch...case语句类似,是一种多分支选择结构
    case工作方式如下所示。取值后面必须为关键字 in,每一模式必须以右括号结束。取值可以为变量或常数。匹配发现取值符合某一模式后,其间所有命令开始执行直至 ;;。;; 与其他语言中的 break 类似,意思是跳到整个 case 语句的最后。
    取值将检测匹配的每一个模式。一旦模式匹配,则执行完匹配模式相应命令后不再继续其他模式。如果无一匹配模式,使用星号 * 捕获该值,再执行后面的命令。

    echo 'Input a number between 1 to 4'
    echo 'your number is:\c'
    read aNum
    case $aNum in
        1)
            echo 'you select 1'
        ;;
        2)
            echo 'you select 2'
        ;;
        3)
            echo 'you select 3'
        ;;
        4)
            echo 'you select 4'
        ;;
        *)
            echo 'you do no select a number between 1 to 4'
        ;;
    esac
    

    for循环

    for loop in 1 2 3 4 5
    do
        echo "The value is: $loop"
    done
    
    for str in 'This is a string'
    do
        echo $str
    done
    
    
    for FILE in $HOME/.bash*
    do
    echo $FILE
    done
    

    while循环

    i=10
    while [ $i -ne 0 ]
    do
        i=`expr $i - 1`
        echo $i
    done
    

    while循环可用于读取键盘信息。下面的例子中,输入信息被设置为变量FILM,按<Ctrl-D>结束循环。

    echo 'type <CTRL-D> to terminate'
    echo -n 'enter your most liked film:'
    while read FILM
    do
        echo "yeah!great film the $FILM"
    done
    

    until循环

    a=0
    
    until [ ! $a -lt 15 ]
    do
    echo $a
    a=`expr $a + 1`
    done
    

    在shell中可以使用break和continue来跳出循环,与其他语言中用法类似,不同的一点是,break后面可以跟个数字,表示跳出第几层循环。

    相关文章

      网友评论

          本文标题:shell中的判断语句和循环语句

          本文链接:https://www.haomeiwen.com/subject/tgsqwftx.html