在 Linux Shell 脚本中,关系运算符用于比较两个值或变量。以下是常见的关系运算符及其使用实例:
等于 (-eq)
if [ $a -eq $b ]; then
echo "$a 等于 $b"
fi
不等于 (-ne)
if [ $a -ne $b ]; then
echo "$a 不等于 $b"
fi
大于 (-gt)
if [ $a -gt $b ]; then
echo "$a 大于 $b"
fi
小于 (-lt)
if [ $a -lt $b ]; then
echo "$a 小于 $b"
fi
大于等于 (-ge)
if [ $a -ge $b ]; then
echo "$a 大于等于 $b"
fi
小于等于 (-le)
if [ $a -le $b ]; then
echo "$a 小于等于 $b"
fi
等于 (= 或 ==)
if [ "$str1" = "$str2" ]; then
echo "字符串相等"
fi
不等于 (!=)
if [ "$str1" != "$str2" ]; then
echo "字符串不相等"
fi
字符串长度为零 (-z)
if [ -z "$str" ]; then
echo "字符串为空"
fi
字符串长度非零 (-n)
if [ -n "$str" ]; then
echo "字符串不为空"
fi
文件存在 (-e)
if [ -e "/path/to/file" ]; then
echo "文件存在"
fi
是普通文件 (-f)
if [ -f "/path/to/file" ]; then
echo "是普通文件"
fi
是目录 (-d)
if [ -d "/path/to/dir" ]; then
echo "是目录"
fi
文件可读 (-r)
if [ -r "/path/to/file" ]; then
echo "文件可读"
fi
文件可写 (-w)
if [ -w "/path/to/file" ]; then
echo "文件可写"
fi
文件可执行 (-x)
if [ -x "/path/to/file" ]; then
echo "文件可执行"
fi
逻辑与 (&& 或 -a)
if [ $a -gt 10 -a $a -lt 20 ]; then
echo "$a 在10和20之间"
fi
逻辑或 (|| 或 -o)
if [ $a -lt 10 -o $a -gt 20 ]; then
echo "$a 不在10和20之间"
fi
逻辑非 (!)
if [ ! -f "/path/to/file" ]; then
echo "不是普通文件"
fi
#!/bin/bash
a=10
b=20
# 数值比较
if [ $a -eq $b ]; then
echo "$a -eq $b: a 等于 b"
else
echo "$a -eq $b: a 不等于 b"
fi
# 字符串比较
str1="hello"
str2="world"
if [ $str1 = $str2 ]; then
echo "$str1 = $str2: 字符串相等"
else
echo "$str1 = $str2: 字符串不相等"
fi
# 文件测试
file="/var/log/syslog"
if [ -f $file ]; then
echo "$file 是普通文件"
if [ -r $file -a -w $file ]; then
echo "并且可读可写"
fi
fi
这些运算符在编写 Shell 脚本时非常有用,可以帮助你实现条件判断和流程控制。