掌握Linux Shell条件测试(从零开始写判断逻辑)

V5主机测评

在编写 Linux Shell 脚本时,经常需要根据不同的条件执行不同的操作。比如:判断一个文件是否存在、两个数字是否相等、用户是否输入了正确的内容等等。这就需要用到 条件测试

掌握Linux Shell条件测试(从零开始写判断逻辑)

什么是条件测试?

条件测试是 Shell 脚本中用于判断某个条件是否成立的机制。如果条件为真(true),就执行某段代码;如果为假(false),则跳过或执行另一段代码。这是实现程序逻辑控制的基础。

基本语法

在 Shell 中,最常用的条件测试方式是使用 test 命令或者方括号 [ ]。它们的功能完全相同。

# 使用 test 命令if test -f /etc/passwd; then    echo "文件存在"fi# 使用 [ ](注意:方括号前后必须有空格!)if [ -f /etc/passwd ]; then    echo "文件存在"fi  

常用测试操作符

Shell 提供了多种测试操作符,主要分为三类:文件测试字符串测试数值测试

1. 文件测试操作符

用于检测文件或目录的状态。这是 文件测试操作符 的典型应用场景。

-f file   # 判断 file 是否为普通文件-d dir    # 判断 dir 是否为目录-e file   # 判断 file 是否存在(任何类型)-r file   # 判断 file 是否可读-w file   # 判断 file 是否可写-x file   # 判断 file 是否可执行  

2. 字符串测试

-z str    # 判断字符串 str 是否为空(长度为0)-n str    # 判断字符串 str 是否非空str1 = str2  # 判断两个字符串是否相等str1 != str2 # 判断两个字符串是否不等  

3. 数值比较

-eq       # 等于(equal)-ne       # 不等于(not equal)-gt       # 大于(greater than)-lt       # 小于(less than)-ge       # 大于等于-le       # 小于等于  

完整示例:一个简单的备份脚本

下面是一个结合了多个条件测试的小脚本,适合初学者理解实际应用:

#!/bin/bashBACKUP_DIR="/backup"SOURCE_FILE="/home/user/data.txt"# 检查源文件是否存在且可读if [ ! -f "$SOURCE_FILE" ] || [ ! -r "$SOURCE_FILE" ]; then    echo "错误:源文件不存在或不可读!"    exit 1fi# 检查备份目录是否存在,不存在则创建if [ ! -d "$BACKUP_DIR" ]; then    mkdir -p "$BACKUP_DIR"    echo "已创建备份目录:$BACKUP_DIR"fi# 执行备份cp "$SOURCE_FILE" "$BACKUP_DIR/"echo "备份完成!"  

注意事项

  • 使用 [ ] 时,左括号 [ 后面和右括号 ] 前面必须有空格,否则会报错。
  • 变量最好用双引号括起来,如 "$VAR",防止变量为空或包含空格时出错。
  • 多个条件可以用 &&(与)、||(或)连接,也可以用 ! 取反。

总结

通过学习 Linux Shell条件测试,你可以让脚本具备“思考”能力。无论是做自动化运维、日志分析还是日常任务,条件判断都是不可或缺的核心技能。希望这篇 Shell脚本入门 教程能帮助你迈出编写智能脚本的第一步!

记住:多练习 if语句用法文件测试操作符,你会越来越熟练!

文章版权声明:除非注明,否则均为V5主机测评网_性价比VPS_性价比云服务器_免费独立服务器原创文章,转载或复制请以超链接形式并注明出处。