美文网首页
4-4(shell4-运算符、条件判断、循环)

4-4(shell4-运算符、条件判断、循环)

作者: 不知名的二狗 | 来源:发表于2019-08-22 10:02 被阅读0次

    shell注释

    以#开头,没有多行注释

    Shell基本运算符

    expr是一款表达式计算工具

    注意

    1.两数相加(使用反引号`而不是单引号’)

    1. 表达式中间有空格需要多注意
      3.7/3=2(结果为商)
      4.7%3=1 (结果为余数)
    #!/bin/bash
    sum=`expr 2 + 2`
    # jieguo
    echo "sum:$sum"
    a=7
    b=3
    echo `expr $a / $b`
    echo `expr $a % $b`
    echo `expr [$a == $b]`
    echo `expr [$a != $b]`
    

    执行结果

    cc@ubuntu:~$ /bin/bash exprtest.sh
    sum:4
    2
    1
    0
    1
    

    条件判断语句

    语法格式一
    if [条件判断]
    then
    语句块(echo '条件成立输出的语句')
    fi
    语法格式二
    if [条件判断]
    then
    语句块(echo '条件成立输出的语句')
    else
    语句块(echo '条件不成立输出的语句')
    fi

    #!/bin/bash
    read score
    if [ $score -ge 60 -a $score -le 100 ]
    then
            echo "good"
    elif [ $score -le 59 -a $score -gt 10 ]
    then
            echo "terrible"
    elif [ $score -le 10 ]
    then
            echo "genius"
    fi
    

    执行结果(第一行22为终端输入)

    cc@ubuntu:~$ /bin/bash iftest.sh
    22
    terrible
    

    关系运算符

    -eq 相等
    -ne 不相等
    -gt 大于
    -lt 小于
    -ge 大于等于
    -le 小于等于

    #!/bin/bash
    a=20
    b=50
    if [ $a -eq $b ]
            then
                    echo "true_eq"
            else    
                    echo "false_eq"
    fi      
    

    执行结果

    cc@ubuntu:~$ /bin/bash guanxi.sh
    false_eq
    

    布尔运算符

    !非运算
    -o 或运算
    -a 与运算

    字符串运算符

    = 相等
    != 不相等
    -z 检测字符串长度是否为0,为0返回true
    str 检测字符串是否为空,不为空返回true

    #!/bin/bash
    a="abc"
    b="eee"
    
    if [ $a = $b ]
    then    
            echo "wa"
    else    
            echo "nono"
    fi 
    

    执行结果

    cc@ubuntu:~$ /bin/bash strtest.sh
    nono
    

    文件测试运算符

    -d file 检测是否目录
    -f file 是否普通文件
    -r file 是否可读
    -s file 是否为空

    #!/bin/bash
    f=guanxi.sh
    if [ -d $f ]
    then
            echo "no"
    else
            echo "yes"
    fi
    

    执行结果

    cc@ubuntu:~$ /bin/bash io.sh
    yes
    

    case...esac

    #!/bin/bash
    read num
    case $num in
            1)
                    echo 1
                    ;;
            2)
                    echo 2
                    ;;
            3)      
                    echo 3
                    ;;
    esac  
    

    执行结果

    cc@ubuntu:~$ /bin/bash casetest.sh
    3
    3
    

    循环

    break 跳出所有循环
    continue 跳出本次循环
    输出1-5的数字

    #!/bin/bash
    int=1
    while(($int<=5))
    do 
            echo $int
            let "int++"
    done  
    

    或者

    #!/bin/bash
    for((i=1;i<5;i++))
    do      
            echo $i
    done   
    

    执行结果

    cc@ubuntu:~$ /bin/bash whiletest.sh
    1
    2
    3
    4
    5
    

    相关文章

      网友评论

          本文标题:4-4(shell4-运算符、条件判断、循环)

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