【Linux】Shell编程之条件语句

发布时间:2025-12-10 11:42:22 浏览次数:3

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 一、条件测试操作作
    • 1.文件测试
    • 2.整数值比较
    • 3.逻辑测试
  • 二、if语句的结构
    • 1.单分支结构
    • 2.双分支结构
    • 3.多分支结构
  • 三、case多分支结构

一、条件测试操作作

test命令

  • 测试表达式是否成立,若成立返回0,否则返回其他数值
格式1: test 条件表达式格式2:[ 条件表达式 ]

1.文件测试

[ 操作符 文件或目录 ]

常用的测试操作符

  • -d :测试是否为目录 (Directory)
  • -e:测试目录或文件是否存在(Exist)
  • -f:测试是否为文件 (File)
  • -r:测试当前用户是否有权限读取 (Read)
  • -w:测试当前用户是否有权限写入 (Write)
  • -x:测试当前用户是否有权限执行 (eXcute)

2.整数值比较

[ 整数1 操作符 整数2 ]

常用的测试操作符

  • -eq:等于 (Equal)
  • ne:不等于(Not Equal)
  • gt:大于 (Greater Than)
  • lt:小于(Lesser Than)
  • le:小于或等于(Lesser or Equal)
  • ge:大于或等于 (Greater or Equal)

3.逻辑测试

格式1:[ 表达式1 ] 操作符[ 表达式2]...格式2:命令1 操作符 命令2 ...

常用的测试操作符

  • -a或&&:逻辑与,“而且”的意思
  • -o或||: 逻辑或,“或者”的意思
  • !: 逻辑否

二、if语句的结构

1.单分支结构

vim test.sh #创建并编辑test.sh#!/bin/bash #脚本解释器 fi [ -e /opt/ztm.sh ] #输入if条件,-e代表测试文件是否存在then #then代表然后,符合if条件的才可if [ -x /opt/ztm.sh ] #这边是嵌入if,在if循环中又嵌入一个if,-x测试文件权限是否可以执行then echo "文件存在,有权限“ #若文件权限可执行,则输出文件存在,有权限then else ”文件存在,无权限“ #若文件权限不可执行,则输出文件存在,不可执行fi #这个嵌入if的结束用fi结束else ”文件不存在“ #这个是我们初始if的不符合条件的项,不符合,则直接输出文件不存在,无需去检测权限fi #检测结束


3.多分支结构



示例1:
实验内容是一张0-100分的卷子,在各分段所给的分数评价


示例2:
提示用户输入100米赛跑的秒数,要求判断秒数大于0且小于等于10秒的进入选拔赛,大于10秒的都淘汰,
如果输入其它字符则提示重新输入;进入选拔赛的成员再进一步判断男女性别,
男生进男生组,女生进女生组,如果输入错误请提示错误


三、case多分支结构



示例:
一张百分卷子,给个分段的学生打个评价

需要做网站?需要网络推广?欢迎咨询客户经理 13272073477