zoukankan      html  css  js  c++  java
  • 1.7比较与测试

    程序中的流程控制是由比较语句和测试语句处理的。

    1、if条件

    if conditon

    then

      commands;

    fi

    2、esle if和esle

    if condition

    then

      commands;

    else if condition; then

      commands;

    else

      commands;

    fi

    由于if的条件判断部分可能会变得很长,可以使用逻辑运算符将它变得简洁一些:

    [ condition ] && action;#如果condition为真,则执行action;

    [ condition ] || action;#如果condition为假,则执行action。

    算术比较

    条件通常被放置在封闭的中括号内,注意一定要在[或]与操作数之间有一个空格。如

    [$var -eq 0 ] or [ $var -eq 0]

    对变量或值进行算术条件判断:

    [ $var -eq 0 ]#当$var等于0时,返回真

    [$var -ne 0]#当$var为非0时,返回真

    其他操作符:

    -gt:大于

    -lt:小于

    -ge:大于或等于

    -le;小于或等于

    可以按照下面的方法结合多个条件进行测试:

    [ $var1 -ne 0 -a $var2 -gt 2 ] #使用逻辑与-a

    [$var1 -ne 0 -o $var2 -gt 2] #逻辑或-o

    文件系统相关测试

    可以使用不同的条件标志测试不同的文件系统相关的属性

    [ -f $file_var ]:如果给定的变量包含正常的文件路径或文件名,则返回真

    [-x $var]:如果给定的变量包含的文件可执行,则返回真

    [-d $var]:如果给定的变量包含的是目录,则返回真

    [-e $var]:如果给定的变量包含的文件存在,则返回真

    [-c $var]:如果给定的变量包含的是一个字符设备文件的路径,则返回真

    [-b $var]:如果给定的变量包含的是一个块设备文件的路径,则返回真

    [-w $var]:如果给定的变量包含的文件可写,则返回真

    [-r $var]:如果给定的变量包含的文件可读,则返回真

    [-L $var]:如果给定的变量包含的是一个符号链接,则返回真

    使用方法:

    fpath="/etc/passwd"

    if [ -e $fpath ]; then

      echo File exists;

    else

      echo Does not exits;

    fi

    字符串比较

    使用字符串比较时,最好用双中括号,因为有时候采用单个中括号会产生错误。

    可以使用下面的方法检测两个字符串,看看他们是否相同

    a、[[ $str1 = $str2]]:相等时,返回真。注意在等号前后各有一个空格

    b、[[ $str1 == $str2]]:这是检测字符串是否相等的另一种写法

    c、[[ $str1 != $str2]]:不同时,返回真。

    还可以检查字符串的字母序情况,

    [[ $str1 > $str2]]:如果前者的字母序大于后者,则返回真

    [[ $str1 < $str2]]:如果前者的字母序小于后者,则返回真

    [[ -z $str1 ]]:如果str1包含的是空字符串,则返回真。

    [[ -n $str1 ]]:str1为非空字符串时,返回真。

    使用逻辑&&和||将多个条件组合起来。

    test命令可以用来执行条件检测。用test可以避免使用过多的括号。

    如:

    if [ $var -eq 0 ]; then echo "TRUE";fi

    也可以写成:

    if test $var -eq 0;then echo "True";fi

  • 相关阅读:
    Java Servlet-http协议
    ajax-典型应用-添加购物车
    ajax-典型应用-验证用户名
    jquery学习--选择器
    jquery---helloworld
    java转换json需导入的jar包说明
    vue对象更新
    解决方法:linux中无法使用root用户ssh远程登录
    related_name和related_query_name举例区别
    numpy 通用函数
  • 原文地址:https://www.cnblogs.com/gary-guo/p/6097499.html
Copyright © 2011-2022 走看看