Shell脚本详解:从理论到实践(二)

张开发
2026/4/14 0:31:29 15 分钟阅读

分享文章

Shell脚本详解:从理论到实践(二)
Shell脚本详解判断一、基础判断语句if...then...fiShell 中最基本的判断结构是if...then...fi。语法if [ 条件 ] then # 条件成立时执行的代码 fi关键点[ 条件 ]是测试语句注意括号[和]两边必须有空格。then必须单独一行或与if用分号;分隔。fi表示条件语句结束。示例 1检查文件是否存在#!/bin/bash filetest.txt if [ -e $file ] then echo $file 存在 fi二、多重判断嵌套if当需要处理多个条件时可以使用elif和嵌套if。语法if [ 条件1 ] then # 条件1成立 elif [ 条件2 ] then # 条件2成立 else # 以上都不成立 fi示例 2成绩分级#!/bin/bash read -p 请输入成绩: score if [ $score -ge 90 ] then echo 优秀 elif [ $score -ge 80 ] then echo 良好 elif [ $score -ge 60 ] then echo 及格 else echo 不及格 fi三、复杂条件组合使用逻辑与、||逻辑或组合多个条件。示例 3检查文件类型#!/bin/bash fileexample if [ -e $file ] [ -f $file ] then echo $file 是普通文件 elif [ -e $file ] [ -d $file ] then echo $file 是目录 else echo $file 不存在 fi四、case语句多分支选择case是处理多重匹配的更简洁方式。语法case 变量 in 模式1) 命令... ;; 模式2) 命令... ;; *) 默认命令... ;; esac示例 4服务管理脚本#!/bin/bash read -p 操作(start/stop/restart): action case $action in start) echo 启动服务... ;; stop) echo 停止服务... ;; restart) echo 重启服务... ;; *) echo 无效操作 ;; esac五、常见条件判断类型类型写法说明文件检测-e file文件是否存在-d dir是否是目录-f file是否是普通文件字符串比较str1 str2字符串相等str1 ! str2字符串不等-z $str字符串为空数值比较num1 -eq num2等于num1 -gt num2大于num1 -lt num2小于六、综合实例备份脚本#!/bin/bash # 检查备份目录是否存在 backup_dir/backup if [ ! -d $backup_dir ] then mkdir -p $backup_dir || echo 创建目录失败 exit 1 fi # 检查源文件 source_file/data/app.log if [ ! -f $source_file ] then echo 源文件不存在 exit 1 fi # 执行备份 cp $source_file $backup_dir/app.log.$(date %Y%m%d) echo 备份成功 || echo 备份失败说明||和用于命令执行结果处理$(date %Y%m%d)生成日期字符串多重条件组合确保流程可靠性掌握这些判断结构后您可以编写出健壮的 Shell 脚本处理各种条件分支任务。

更多文章