• shell 脚本之判断语句 if 详解


    使用 Linux 系统这么长时间,对 shell 脚本也算是比较熟悉。其实不管是搞开发,还是搞运维,shell 脚本都是必备的基本技能。这次抽时间好好总结一下 shell 方面的知识,综合的再学习一下,记录。这篇文章总结的是 shell 脚本的 if 语句的使用。

    一、if 语句的基本语法

    if [ 条件判断 ]; then
        ... ...
    elif [ 条件判断 ]; then
        ... ...
    else
        ... ...
    fi

     

    二、文件/目录的判断

    关于文件或目录的相关判断方法:

    [ -e file ]  判断文件是否存在
    [ -f file ]  判断文件是否是普通文件
    [ -d file ]  判断文件是否是目录文件
    [ -b file ]  判断文件是否块设备文件
    [ -c file ]  判断文件是否字符设备文件
    [ -s file ]  判断文件是否是非空文件
    [ -r file ]  判断文件是否可读
    [ -w file ]  判断文件是否可写
    [ -x file ]  判断文件是否可执行

     

    三、数字比较判断

    关于针对数字的判断,首先定义a=10, b=8

    [root@vip ~]# a=10 b=8
    [ $a -eq $b ]  判断 a 是否等于 b
    [ $a -ne $b ]  判断 a 是否不等 b
    [ $a -gt $b ]  判断 a 是否大于 b
    [ $a -ge $b ]  判断 a 是否大等 b
    [ $a -lt $b ]  判断 a 是否小于 b
    [ $a -le $b ]  判断 a 是否小等 b

     

    四、字符串的判断和比较

    关于针对字符串的判断比较,首先定义 str1=abc, str2=abd

    [root@vip ~]# str1=abc; str2=abd
    
    [ -z str ]        判断 str 是否长度为0
    [ -n str ]        判断 str 是否长度不为0
    [ str1 == str2 ]  判断 str1 与 str2 是否相等
    [ str1 != str2 ]  判断 str1 与 str2 是否不等
    [ str1 > str2 ]  判断 str1 是否大于 str2
    [ str1 < str2 ]  判断 str1 是否小于 str2
    [[ str1 > str2 ]] 判断 str1 是否大于 str2
    [[ str1 < str2 ]] 判断 str1 是否小于 str2

     

    五、逻辑判断

    [ $a -lt $b -a $str1 == $str2 ]     a 大于 b, 而且 str1 与 str2 相等  (&&)
    [ $a -lt $b -o $str1 == $str2 ]     a 大于 b, 或者 str1 与 str2 相等  (||)
    [[ $a -gt $b && $str1 == $str2 ]]   a 大于 b, 而且 str1 与 str2 相等  (&&)
    [[ $a -gt $b || $str1 == $str2 ]]   a 大于 b, 或者 str1 与 str2 相等  (||)
    [ $a -lt $b ] && [ $str1 == $str2 ] a 大于 b, 而且 str1 与 str2 相等  (&&)
    [ $a -lt $b ] || [ $str1 == $str2 ] a 大于 b, 或者 str1 与 str2 相等  (||)

     

    六、常用 if 实例

    待更新。。。

  • 相关阅读:
    Trie树-0/1字典树-DFS-1624. 最大距离
    图-连通分量-DFS-749. 隔离病毒
    贪心-谷歌-857. 雇佣 K 名工人的最低成本
    图-搜索-DFS-51. N皇后
    图-连通分量-DFS-并查集-695. 岛屿的最大面积
    图-最小生成树-629. 最小生成树
    codeforces 493 D Vasya and Chess【 博弈 】
    POJ 2155 Matrix【 二维树状数组 】
    HDU 5273 Dylans loves sequence【 树状数组 】
    POJ 1195 Mobile phones【 二维树状数组 】
  • 原文地址:https://www.cnblogs.com/liwei0526vip/p/6211175.html
Copyright © 2020-2023  润新知