• 比较与测试


    一般情况我们使用if、if else 以及逻辑运算符来执行测试,而用一些比较运算符来比较数据项。另外,也可以用test来测试!

    if条件:

    if condition

    then

    commands

    fi

    else if和else:

    if condition

    then

    commands

    elif condition

    then

    commands

    else

    commands

    fi

    算术比较:

    条件通常被放置子在封闭的中括号中,注意在[和]与操作数之间有一个空格,如果忘记了空格,脚本就会报错。

    例如:

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

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

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

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

    其他重要的操作符如下:

    -gt:大于

    -lt:小于

    -ge:大于或等于

    -le:小于或等于

    多个条件的测试:

    [ $var -eq 0 -a $var1 -eq 0 ] #使用逻辑与-a

    [ $var -eq 0 -o $var1 -ne 0 ]#使用逻辑或-o

    文件系统相关的测试:

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

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

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

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

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

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

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

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

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

    示例如下:

    fpath="/etc/pwdcf"

    if [ -e $fpath ];then

    echo "file directory is exist!";

    else

    echo "file directory is not exist!";

    fi

    字符串比较:

    使用字符串比较时,最好用双括号,因为有时候采用单个中括号会产出错误,所以最好避开它们。

    注意:=前后各有一个空格,如果忘了加了,就变成赋值了。

    [ [ $str1 = $str2 ] ]或者[ [ $str1 == $str2 ] ]:当str1等于str2时,返回为真

    [ [ $str1 != $str2 ] ]:当str1与str2不同时,返回为真

    [ [ $str1 > $str2 ] ]:当str1的字母序与str2大时,返回为真

    [ [ $str1 < $str2 ] ]:当str1的字母序与str2小时,返回为真

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

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

    使用逻辑&&和||能够很容易将多个条件组合起来:

    使用示例

    if[ [ -n $str1 ] && [ -z $str1 ] ];

    then

    commands

    fi

    test命令

    ..............

  • 相关阅读:
    cookies和re
    2018福大软工实践-第一次作业之自我介绍
    2018福大软工实践-第一次作业
    Linux shell脚本编程
    课程第八次作业
    课程第七次作业
    课程第六次作业
    课程第五次作业
    四则运算课程第四次作业
    第三次课程作业
  • 原文地址:https://www.cnblogs.com/blogofwu/p/3904764.html
Copyright © 2020-2023  润新知