约 7319 字

约 37 分钟

#Bash 的 test 命令

test EXPRESSION

# 或

[ EXPRESSION ]

功能

评估表达式的布尔值;可以检查文件类型、检查字符串、比较整数大小。

类型

Bash 内置命令。

说明

  • 表达式
    • ( EXPRESSION ) - EXPRESSION 是 true
    • ! EXPRESSION - EXPRESSION 是 false
    • EXPRESSION1 -a EXPRESSION2 - EXPRESSION1 和 EXPRESSION2 都是 true
    • EXPRESSION1 -o EXPRESSION2 - EXPRESSION1 或 EXPRESSION2 是 true
  • 字符串判断
    • -n STRING - STRING 长度不为 0
    • -z STRING - STRING 长度为 0
    • STRING1 = STRING2 - STRING1 等于 STRING2
    • STRING1 != STRING2 - STRING1 不等于 STRING2
  • 整数判断
    • INTEGER1 -eq INTEGER2 - INTEGER1 等于 INTEGER2
    • INTEGER1 -ne INTEGER2 - INTEGER1 不等于 INTEGER2
    • INTEGER1 -lt INTEGER2 - INTEGER1 小于 INTEGER2
    • INTEGER1 -gt INTEGER2 - INTEGER1 大于 INTEGER2
    • INTEGER1 -le INTEGER2 - INTEGER1 小于或等于 INTEGER2
    • INTEGER1 -ge INTEGER2 - INTEGER1 大于或等于 INTEGER2
  • 文件判断
    • -e FILE - 文件存在
    • -f FILE - 文件存在且是普通文件(regular file)
    • -d FILE - 文件存在且是目录(directory)
    • -b FILE - 文件存在且是块设备文件(block special)
    • -c FILE - 文件存在且是字符设备文件(character special)
    • -p FILE - 文件存在且是命名管道(named pipe)
    • -S FILE - 文件存在且是套接字文件(socket)
    • -h FILE - 文件存在且是符号链接(symbolic link),同 -L
    • -L FILE - 文件存在且是符号链接(symbolic link),同 -h
    • -r FILE - 文件存在且当前用户有读权限
    • -w FILE - 文件存在且当前用户有写权限
    • -x FILE - 文件存在且当前用户有执行权限
    • -s FILE - 文件存在且大小大于 0
    • -k FILE - 文件存在且设置了 sticky 位
    • -u FILE - 文件存在且设置了 set-user-ID
    • -g FILE - 文件存在且设置了 set-group-ID
    • -O FILE - 文件存在且所属用户 ID 是当前进程的有效用户 ID
    • -G FILE - 文件存在且所属组 ID 是当前进程的有效组 ID
    • -N FILE - 文件存在且自上次读取后已被修改
    • -t FD - 文件描述符 FD 在终端中被打开
    • FILE1 -ef FILE2 - FILE1 和 FILE2 相同(具有相同的设备和 inode 编号)
    • FILE1 -nt FILE2 - FILE1 比 FILE2 新
    • FILE1 -ot FILE2 - FILE1 比 FILE2 旧

#示例

if [ -d "/tmp" ]; then
    echo "/tmp 是目录"
fi

if [ -f "/tmp/code" ]; then
    echo "/tmp/code 是普通文件"
fi

if [ -c "/dev/null" ]; then
    echo "/dev/null 是字符设备"
fi

if [ 10 -gt 5 ]; then
    echo "10 大于 5"
fi

if [ 6 -lt 8 ]; then
    echo "6 小于 8"
fi

>>> Establishing WebAssembly Runtime.

>>> Standby.

Powered by Shift.

#推荐阅读

#手册

更新: 2025/11/7

作者: PlanC

创建: 2025/10/25