shell编程总结8(if相关)
shell编程总结8(if相关)
心中的理想乡 发表于10个月前
shell编程总结8(if相关)
  • 发表于 10个月前
  • 阅读 2
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 新注册用户 域名抢购1元起>>>   

我们有高兴,有不高兴;我们有在意,有不在意;我们有在行,有不在行。。。我们之所以为人,是因为我们拥有大脑,情感与性格,我们不仅仅只会吃,只会做爱,我们还会品尝食物的美味,还会挑选与自己性格合得来的伴侣,我们更会如何抑制或是排解自我的负面情绪,不至于崩溃。你可以不多想,在意少,只顾自己,但是你一定会得到应有的报应,到那时,我想食色应该都会失色了。
1、使用if-then语句:
if command
then
    commands
fi
说明:bash sell中if语句运行if行定义的那个命令,如果该命令的退出码是0,位于then部分的命令就会被执行。如果该命令的退出码是其他的什么值,那么then部分的命令就不会被执行
举例:
    #!/bin/bash
    if data
        echo "it worked"
    fi
2、if-then-else语句:
if command
then
    commands
else
    commands
fi

3、嵌套if:
if command1
then
    commands
elif command2
then
    more commands
fi

4、使用test命令:test命令提供了在if-then语句中测试不同条件的途径。如果test命令中列出的条件成立,test命令就会退出并返回退出码0,这样if-then语句就与其他编程语言中的if-then语句一样了。
    举例:
        if test condition
        then
            commands
        fi
    另外一种使用方法:
        if [ commands ]
        then
            commands
        fi
        这种使用方式注意必须要在左括号的右侧与右括号的左侧各加一个空格,否则会报错
    主要判断条件:
        (1)数值比较
        (2)字符串比较
        (3)文件比较

5、数值比较
    主要比较的几个关键字:
        -eq    相等
        -ge    大于或等于
        -gt    大于
        -le    小于或等于
        -lt    小于
        -ne    不等于
    举例:
        if [ 3 -gt 2 ]
        then
            echo "This is a test"
        if
    注意:不能使用浮点值进行判断

6、字符串比较
    主要比较的几个关键字符:
        =        相同
        !=        不同
        <        小
        >        大
        -n     非0
        -z        为0
    问题:对于>与<这两个符号要进行转义:\>、\<
    测试项:test在字符串比较的时候,大小写情况

7、文件比较
    -d file 是否存在并且是一个目录
    -e file 是否存在
    -f file 是否存在并是一个文件
    -r file 是否存在并可读
    -s file
    -w file
    -x file
    -O file
    -G file
    file1 -nt file2
    file1 -ot file2

8、文件比较
    -d file 检查file是否存在并是一个目录
    -e file 是否存在
    -f file 是否存在并是一个文件
    -r file 是否存在并可读
    -s file 存在并非空
    -w file 存在并可写
    -x file 存在并可执行
    -O file 是否存在并属当前用户所有
    -G file 是否存在并且默认组与当前用户相同
    file1 -nt file2 检查file1是否比file2新
    file1 -ot file2 检查file1是否比file2旧
    举例:
        #!/bin/bash
        if [ -d $HOME ]
        then
            echo "your HOME directory exists"
            cd $HOME
        else
            echo "There is a problem with your HOME directory"
        fi

9、复合条件测试:一共有两种布尔运算符可用
    [ condition1 ] && [ condition2 ]
    [ confition1 ] || [ confition2 ]

10 if-then的高级特性
    (1)使用双尖括号:(( expression ))
                 说明:可以放入高级的数学表达式,test只支持简单的算术操作
                  另外支持的操作符:
                      ++、--、!(逻辑求反)、~(位求反)、**幂运算、<<(左位移)、>>(右位移)、&、|、&&、||
                  举例:
                      #!/bin/bash
                      var1=10
                      if (( $val1**2>90 ))
                      then
                          (( val2 = $val1**2))
                          echo "The square of $val2 is $val2"
                      fi
    (2)使用双方括号:[[ expression ]]
                 说明:双方括号里的表达式使用了test命令中采用的标准字符串进行比较,并且提供了test命令未提供的一个热性,模式匹配 
                 举例:
                     #!/bin/bash
                     if [[ $USER == r* ]]
                     then
                         echo "Hello $USER"
                     else
                         echo "Sorry.I do not know you"
                     fi
11、case命令;
            case variable in 
            pattern1 | pattern2) commands1;;
            pattern3) commands2;;
            *) default command2;;
            esac
        举例:
            #!/bin/bash
            case $USER in
            rich | barbara)
                echo "adf"
                echo "asdasd";;
            testing)
                echo "2342"
            jessica)
                echo "asd234"
            *)
                echo "sorry"
            esac

共有 人打赏支持
粉丝 0
博文 60
码字总数 46203
×
心中的理想乡
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: