• Linux test命令


    test命令

        长格式的例子:

    test "$A" == "$B" && echo "Strings are equal"
    
    test “$A” -eq “$B” && echo "Integers are equal"
        两个 == 是表示两个字符串是否完全相同的意思

        而-eq是两个数字是否相等的意思。

        简写格式的例子:

    [ "$A" == "$B" ] && echo "Strings are equal"

    [ "$A" -eq "$B" ] && echo "Integers are equal

    -v 用来检测一个变量是否被设置过值,若设置过则$?返回0,没设置过值返回1.

    数值测试:

     –gt //是否大于
    
     -ge //是否大于等于
    
    -eq //是否等于
    
    -ne //是否不等于
    
    -lt //是否小于
    
    -le //是否小于等于

        这些数值测试可以是整数或负数,甚至算数表达式来比较。但不支持小数点。

    test有一个专用的命令中括号

        左中括号[ 是一个命令,空格加右中括号是它的参数

        具体如下:

    # [ A ==A ]

    # echo $?

    # 0

    也就是[ A ==A ] 等于 test "$A" == "$A".

    左右中括号与后面的参数之间必须有空格.

    字符串测试

    字符串测试:注意: 此表达式一般用于[[ ]]中;扩展的正则表达式

    == 是否等于 示例: [[ a == b ]]中, a == b 与中括号之间都有空格.

    > ascii码是否大于ascii码

    < 是否小于

    != 是否不等于

    =~ 左侧字符串是否能够被右侧的PATTERN所匹配 即 左侧字符串是否包含右侧的,包含为真,不包含为假.

    注意:用于字符串比较时的用到的操作数都应该使用引号

    -z "STRING“ 字符串是否为空,空为真,不空为假,举例
    
    # A=123
    
    # [ -z $A ]
    
    # echo $?
    
    # 1
    
    -z是当变量有值的时候为假,没有被赋值的时候为真.
    
    -n "STRING“ 字符串是否不空,不空为真,空为假,举例
    
    # A=123
    
    # [ -z $A ]
    
    # echo $?
    
    # 0
    
    -n是当变量有值的时候为真,没有被赋值的时候为假.

    存在性测试

    -a FILE:同-e FILE:

    文件存在性测试,存在为真,否则为假

    # [ -e /etc/passwd ]等于test -e /etc/passwda 等于test -a /etc/passwda
    
    # echo $?
    
    # 0

    存在性及类别测试

    -b FILE://是否存在且为块设备文件
    
    -c FILE://是否存在且为字符设备文件
    
    -d FILE://是否存在且为目录文件
    
    -f FILE://是否存在且为普通文件
    
    -h FILE 或 -L FILE://存在且为符号链接文件
    
    -p FILE://是否存在且为命名管道文件
    
    -S FILE:是否存在且为套接字文件

    权限测试

        文件权限测试:

    -r FILE://是否存在且可读
    
    -w FILE: //是否存在且可写
    
    -x FILE: //是否存在且可执行
    
    [ -r /app/passwd -o -w /app/passwd ]  //判断/app/passwd文件是否存在,并拥有读或写的权限. 不能写为 -rw
    
    [ -r /app/passwd -a -w /app/passwd ]  //判断/app/passwd文件是否存在,并拥有读和写的权限. 不能写为 -rw

        文件特殊权限测试:

    -u FILE://是否存在且拥有suid权限
    
    -g FILE://是否存在且拥有sgid权限
    
    -k FILE://是否存在且拥有sticky权限

    文件大小测试:

    -s FILE: //是否存在且非空
    
    -t fd: fd //文件描述符是否在某终端已经打开
    
    -N FILE://文件自从上一次被读取之后是否被修改过
    
    -O FILE://当前有效用户是否为文件属主
    
    -G FILE://当前有效用户是否为文件属组

    双目测试:

    FILE1 -ef FILE2: //FILE1是否是FILE2的硬链接,主要看是否为同一个inode号。
    
    FILE1 -nt FILE2: //FILE1是否新于FILE2(mtime)
    
    FILE1 -ot FILE2: //FILE1是否旧于FILE2

    多条件判断.并且,或者,非..

    第一种方式:

    COMMAND1 && COMMAND2 并且 &&等于 -a
    
    COMMAND1 || COMMAND2 或者 ||等于 -o
    
    ! COMMAND 非

    如:

    [[ -r FILE ]] && [[ -w FILE ]] 等于 [ -r /app/passwd -a -w /app/passwd ]
    
    [[ -r FILE ]] || [[ -w FILE ]] 等于 [ -r /app/passwd -o -w /app/passwd ]

    第二种方式:

    条件1 -a 条件2 并且

    条件1 -o 条件2 或者

    ! EXPRESSION

    必须使用测试命令进行,即test或[]

  • 相关阅读:
    Linux常用命令
    IBM Java多线程 1. 线程基础
    IBM Java多线程 6.其它线程 API 详细信息
    Jakarta Commons Logging学习笔记
    Linux 下存放ssh信息的文件位置
    ArrayList的使用方法
    JAVA基础--JAVA中的反射机制详解
    使用 Bash shell脚本进行功能测试
    log4j详细解
    Eclipse Template用法探讨
  • 原文地址:https://www.cnblogs.com/OrochWang/p/9442497.html
Copyright © 2020-2023  润新知