• shell 判断语句


    判断语句

    使用test来进行判断

    # test [选项] 文件
    test -d /Users/zhanghe/desktop/user/shell
    ---------------------


    示例:
    #如果该文件是目录则输出yes,否则输出no
    test -d /Users/zhanghe/desktop/user/shell && echo yes || echo no

    • 1

    选项

    按照文件类型判断
    -d  判断文件是否存在,且为目录
    -e  判断文件是否存在
    -f  判断文件是否存在,且为普通文件
    -s  判断文件是否存在,并且是否为非空文件
    -b  判断文件是否为块设备文件
    -c  判断文件是否为字符设备文件
    -g  判断文件是否设置setgid位
    -h  判断文件是否是符号链接
    -L  判断文件是否为符号链接
    -p  判断文件是否为管道文件
    -u  判断文件是否设置setuid位

    #
    示例
    test -s stu.txt
    • 1
    按照权限判断
    -r 判断文件是否存在,且是否有读权限
    -w 判断文件是否存在,且是否有写权限
    -x 判断文件是否存在,且是否有执行权限

    #
    示例
    test -w stu.txt
    • 1
    数值比较
    -eq   等于
    -ne   不等于
    -gt   大于
    -lt   小于
    -ge   大于等于
    -le   小于等于

    #
    示例
    test 1 -eq 2
    • 1
    字符串比较
    -z  判断字符串是否为空
    -n  判断字符串是否非空
    ==  判断两个字符串是否相等
    !=  判断两个字符串是否不等

    #
    示例
    test "aa" == "ab"
    • 1
    逻辑判断
    -a   逻辑与
    -o   逻辑或
    !    逻辑非

    #
    示例
    test "aa" == "aa" -a "ab" == "aa"
    • 1

    上述的test可以使用[ ]来替代

    如:

    [ -s stu.txt ]

    [ "aa" == "ab" ]

    还有一种[[ 条件 ]]也可以进行条件判断,对于test和[]如果表达式包含特殊字符的话,需要进行转义,而对于[[ 条件 ]]则不需要理会特殊字符的影响,但是注意[[的后面和]]的前面都至少有一个以上的空格符才行

    字符串包含

    可以看到上述提供的只是基础的判断,那字符串包含如何进行判断呢

    使用grep
    if [[ -n `echo "abcd" | grep "ab"` ]]
    then echo "包含"
    fi
    • 1
    使用通配符
    if [[ "abcd" == *ab* ]]
    then echo "包含"
    fi
    • 1

    https://zhhll.icu/2021/linux/shell/判断语句/

    本文由 mdnice 多平台发布

  • 相关阅读:
    linux进程大杂烩==Linux应用编程4
    C# List 复制之深浅拷贝
    Codeforces Round 907 (Div. 2——ABC)
    【射击game】
    【DRAM存储器十五】DDR介绍-关键技术之DLL和prefetch
    【前端】简易化看板
    关于2023年编程语言使用排行我的看法
    青少年软件编程C++二级题库(51-60)
    <Senior High School Math>: inequality question
    npm install卡住与node-npy的各种奇怪报错
  • 原文地址:https://blog.csdn.net/Lxn2zh/article/details/132943019