在 Shell 编程中,运算符用于执行各种类型的操作,如算术运算、字符串比较、文件测试等。以下是 Shell 中常用的运算符分类和示例:
1. 算术运算符
Shell 中使用 expr
或 $(( ... ))
来进行算术运算。
+
: 加法-
: 减法*
: 乘法/
: 除法%
: 取余**
: 幂运算(在bash
中支持)++
: 自增(用于变量)--
: 自减(用于变量)
示例:
#!/bin/bash
# 定义两个变量
a=10
b=20
# 算术运算
sum=$((a + b))
difference=$((a - b))
product=$((a * b))
quotient=$((b / a))
remainder=$((b % a))
power=$((a ** 2))
echo "Sum: $sum"
echo "Difference: $difference"
echo "Product: $product"
echo "Quotient: $quotient"
echo "Remainder: $remainder"
echo "Power: $power"
2. 关系运算符
关系运算符用于比较两个数字。返回的结果是布尔值(0 为 true,非 0 为 false)。
-eq
: 等于-ne
: 不等于-gt
: 大于-lt
: 小于-ge
: 大于等于-le
: 小于等于
示例:
#!/bin/bash
a=10
b=20
if [ $a -eq $b ]; then
echo "a is equal to b"
else
echo "a is not equal to b"
fi
if [ $a -lt $b ]; then
echo "a is less than b"
fi
3. 逻辑运算符
逻辑运算符用于布尔逻辑操作。
&&
: 逻辑与(AND)||
: 逻辑或(OR)!
: 逻辑非(NOT)
示例:
#!/bin/bash
a=10
b=20
if [ $a -lt $b ] && [ $a -gt 5 ]; then
echo "a is less than b and greater than 5"
fi
if [ $a -gt $b ] || [ $a -lt $b ]; then
echo "Either a is greater than b or less than b"
fi
5. 文件测试运算符
文件测试运算符用于检查文件的某些属性。
-e
: 文件存在-f
: 是普通文件-d
: 是目录-r
: 文件可读-w
: 文件可写-x
: 文件可执行-s
: 文件大小非 0
示例:
#!/bin/bash
file="example.txt"
if [ -e "$file" ]; then
echo "$file exists"
fi
if [ -d "$file" ]; then
echo "$file is a directory"
else
echo "$file is not a directory"
fi
if [ -r "$file" ]; then
echo "$file is readable"
fi
6. 条件运算符(三元运算符)
Shell 中没有直接的三元运算符,但可以使用 if-else
结构或利用 &&
和 ||
运算符来模拟。
示例:
#!/bin/bash
a=10
b=20
# 使用 && 和 || 模拟三元运算符
[ $a -gt $b ] && echo "a is greater than b" || echo "a is not greater than b"