美文网首页
linux基础知识----Just for Tencent(sh

linux基础知识----Just for Tencent(sh

作者: 时光小偷_hansen | 来源:发表于2017-08-20 21:22 被阅读0次

    1. if-then 语句

    基本格式:

    if command   //若command命令执行完毕之后的状态码返回值为0,则执行then中的命令,否则                             不执行then中的命令

    then  

              commands

    fi

    if command;then          //另一种格式

        commands

    fi

    else 格式

    if  command;then     //如果command中命令返回的退出状态码为0,则执行then

          commands

    else 

          commands    //如果command中命令返回的退出状态码为非0,则执行else

    fi

    elif 格式

    if command;then

       commands

    elif  command;then

          commands

    elif  command;then

            commands

    else

        commands

    fi

    2. test命令

    if  test condition;then      //如果condition条件不写,则以非零状态码退出,执行else中的                                                              commands

             commands

    else

                commands

    fi 

    (1) my_variable="full";  test  $my_variable  //若变量my_variable为空,则退出码为非0,若有内容,则为0

    方括号的表达形式

    if  [ condition ]    //使用方括号来代替test,但是在方括号的两边必须具有空格

    then

         commands

    fi

    通常test可以测试三类条件

    (1)数值比较

    n1  -eq n2      //是否相等,相等,则退出码为0

    n1  -ge   n2     //是否大于或等于

    n1  -gt    n2    //是否大于

    n1   -le    n2    //是否小于等于

    n1   -lt    n2   //是否小于

    n1    -ne   n2   //不等于

    其中n1 和  n2 可以使用变量,例如有变量var  ,可以  $var   -ne   n2  这样使用,这种比较不能使用在浮点数中

    (2)字符串比较

              str1 = str2    //比较是否相等,通过ASCII表来比较,因此会比较标点,大小写等

              str1 != str2   //比较是否不相等  等号两边留空格,也可以使用变量的方式

              str1 \> str2   //比较大于,大于号需要转义,避免被shell当成重定向符

              str1 \< str2 //比较小于,小于号需要转移,避免被shell当成重定向符

                -n  str1    //测试str1的长度是否为非0

               -z  str1    //测试长度是否为0

       if [ -z  $var  ]                    //在这里,若var未被定义,这里也是可以执行的,只是var的长度为0,                                              故-z  $var的退出码为0

    (3)文件比较

    -d  file              //检查file是否存在且是一个目录

    -e file            //检查file 是否存在

    -f  file             //检查file是否是一个文件

    -r  file              //检查file  是否存在并可读

    -s  file             //检查file是否存在并非空

    -w  file           //检查file 是否存在并可写

    -x    file       //检查file是否存在并可执行

    -O   file          //检查file是否存在并属于当前用户

    -G  file            //检查file是否存在并且默认组与当前用户相同

    file1  -nt    file2  检查file1是否比file2新

    file1   -ot   file2  检查file1是否比 fil2旧

    3.复合条件测试

    [ condition1 ]  && [ condition2 ]

    [ condition1 ]   ||    [ condition2 ]     

    4.if-then 的高级特性

    针对数学运算符的高级特性

    ((   expression  ))  ,支持除了上面以外的其他运算符

    val++        后增

    val--         后减

    ++val     先增

    --val      先减

    !        逻辑求反

    ~       位求反

    **     幂运算

    <<    左位移

    >>   右位移

    &   位布尔求反

    |    位布尔或

    &&   逻辑和

    ||    逻辑或

    针对字符串比较的高级特性

    [[  expression  ]],两边有空格

    5.case命令

    case  variable in

    pattern1 | pattern2) commands1;;

    pattern3) commands2;;

    *) commands;;

    相关文章

      网友评论

          本文标题:linux基础知识----Just for Tencent(sh

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