shell-条件判断

工具教程3周前更新 hank
72 0 0
文件与目录状态判断
-e FILE:文件或目录存在 (Exist)。
-f FILE:存在且为普通文件 (File)。
-d FILE:存在且为目录 (Directory)。
-s FILE:存在且非空 (Size > 0)。
-r FILE:存在且当前用户可读 (Readable)。
-w FILE:存在且当前用户可写 (Writable)。
-x FILE:存在且当前用户可执行 (Executable)。
-L FILE:存在且为软链接 (Symbolic Link)。

字符串,单括号[]时候,注意对变量添加双引号,[[]]的时候可以不加
-z STRING:字符串长度为零(Zero,即空字符串)。
-n STRING:字符串长度非零(Non-zero,即非空字符串)。
STRING1 = STRING2 或 STRING1 == STRING2:两字符串相等。
STRING1 != STRING2:两字符串不相等。

整数大小比较

-eq:等于 (Equal)
-ne:不等于 (Not Equal)
-gt:大于 (Greater Than)
-ge:大于等于 (Greater than or Equal)
-lt:小于 (Less Than)
-le:小于等于 (Less than or Equal)
#!/bin/bash

# 场景 1:判断文件和目录状态 (-f 判断文件是否存在,-d 判断目录)
CONFIG_FILE="/etc/fstab"

if [[ -f "$CONFIG_FILE" ]]; then
    echo "配置文件 $CONFIG_FILE 存在,准备读取。"
else
    echo "错误:找不到配置文件!"
    exit 1
fi

# 场景 2:数值比较 (-eq等于, -ne不等于, -gt大于, -lt小于)
CPU_USAGE=85

if [[ $CPU_USAGE -gt 80 ]]; then
    echo "告警:CPU负载过高 ($CPU_USAGE%)"
fi

# 场景 3:字符串比较 (-z 判断是否为空)
USER_INPUT=""
if [[ -z "$USER_INPUT" ]]; then
    echo "输入为空,请重新输入。"
fi
© 版权声明

相关文章

暂无评论

none
暂无评论...