在编写 Linux Shell 脚本时,Shell 运算符是控制程序流程、实现逻辑判断和数值计算的核心工具。无论你是刚接触 Linux 的小白,还是有一定经验的开发者,掌握这些运算符都能让你的脚本更智能、更高效。

一、什么是 Shell 运算符?
Shell 运算符用于对变量、字符串、数字等进行比较、计算或逻辑判断。常见的 Shell 运算符包括:
- 算术运算符:如 +、-、*、/
- 关系运算符:如 -eq(等于)、-ne(不等于)、-gt(大于)等
- 字符串运算符:如 =(相等)、!=(不相等)、-z(空字符串)
- 逻辑运算符:如 &&(与)、||(或)、!(非)
- 文件测试运算符:如 -f(是否为普通文件)、-d(是否为目录)
二、常用 Shell 运算符详解
1. 算术运算符
在 Shell 中,不能直接用 a + b 进行加法,而要使用 $(( )) 或 expr 命令。
# 使用 $(( )) 进行算术运算a=10b=5echo $(( a + b )) # 输出 15echo $(( a * b )) # 输出 50# 使用 expr(注意空格!)echo $(expr $a + $b) # 输出 152. 关系运算符(用于整数比较)
这些运算符通常用在 if 语句中,必须放在方括号 [ ] 或双括号 [[ ]] 内。
| 运算符 | 含义 |
|---|---|
| -eq | 等于(equal) |
| -ne | 不等于(not equal) |
| -gt | 大于(greater than) |
| -lt | 小于(less than) |
| -ge | 大于等于 |
| -le | 小于等于 |
num=20if [ $num -gt 10 ]; then echo "数字大于10"fi3. 字符串运算符
str1="hello"str2="world"if [ "$str1" = "$str2" ]; then echo "字符串相等"else echo "字符串不相等"fi# 判断字符串是否为空if [ -z "$str1" ]; then echo "str1 是空字符串"else echo "str1 不为空"fi4. 逻辑运算符
用于组合多个条件:
&&:逻辑“与”,两个条件都为真才成立||:逻辑“或”,任一条件为真即成立!:逻辑“非”,取反
age=25has_license=trueif [ $age -ge 18 ] && [ "$has_license" = "true" ]; then echo "可以开车"fi5. 文件测试运算符
常用于判断文件是否存在、是否可读等:
filename="/etc/passwd"if [ -f "$filename" ]; then echo "$filename 是一个普通文件"fiif [ -r "$filename" ]; then echo "$filename 可读"fi三、实战小例子
下面是一个完整的脚本,综合使用了多种 Shell 条件判断 和 Shell 逻辑运算:
#!/bin/bashread -p "请输入你的年龄: " ageif [ $age -lt 0 ]; then echo "年龄不能为负数!"elif [ $age -lt 18 ]; then echo "你还未成年。"elif [ $age -ge 18 ] && [ $age -le 60 ]; then echo "你是成年人,正值壮年!"else echo "你已进入老年阶段,注意健康!"fi四、总结
掌握 Linux Shell 运算符 是学习 Shell 脚本编程 的基础。通过合理使用这些运算符,你可以编写出功能强大、逻辑清晰的自动化脚本。记住以下几点:
- 整数比较用
-eq、-gt等,不要用== - 字符串比较用
=和!= - 方括号
[ ]两边要有空格! - 使用双引号包裹变量,防止空值错误
现在,你已经具备了使用 Shell 运算符的基本能力。快去写一个属于你自己的脚本吧!
文章版权声明:除非注明,否则均为V5主机测评网_性价比VPS_性价比云服务器_免费独立服务器原创文章,转载或复制请以超链接形式并注明出处。
