当前位置: 首页 > news >正文

shell脚本第二阶段-----选择结构

一、条件判断

1.语法格式

格式1:test 条件表达式

格式2:[ 条件表达式 ]

格式3:[[ 条件表达式 ]] 支持正则~

说明:man test 去查看,很多的参数都用来进行条件判断

2.条件判断相关参数

与文件存在与否的判断

-e 是否存在     不管是文件还是目录,只要存在,条件就成立
-f 是否为普通文件
-d 是否为目录
-S socket
-p pipe
-c character
-b block
-L 软link三种语法格式:
test -e file     只要文件存在条件为真
[ -d /shell01/dir1 ] 判断目录是否存在,存在条件为真
[ ! -d /shell01/dir1 ] 判断目录是否存在,不存在条件为真
[[ -f /shell01/1.sh ]] 判断文件是否存在,并且是一个普通的文件-s 判断文件是否有内容(大小),非空文件条件满足
说明:-s表示非空,! -s 表示空文件
说明:1.sh文件里文件
文件权限相关的判断
-r 当前用户对其是否可读
-w 当前用户对其是否可写
-x 当前用户对其是否可执行
-u 是否有suid
-g 是否sgid
-k 是否有t位两个文件的比较判断file1 -nt file2 比较file1是否比file2新
file1 -ot file2 比较file1是否比file2旧
file1 -ef file2 比较是否为同一个文件,或者用于判断硬链接。是否指向同一个inodetest file1 -nt file2
[ file1 -ot file2 ]

整数判断(重要)

整数之间的判断-eq 相等
-ne 不等
-gt 大于
-lt 小于
-ge 大于等于
-le 小于等于

字符串判断(重要)

-z 是否为空字符串         字符串长度为0,就成立
-n 是否为非空字符串       只要字符串非空,就是成立
string1 = string2        是否相等
string1 != string2       不等

------------------------------------------------------------

多重条件判断

逻辑与 :         -a           或者&&

[1 -eq 1 -a 1-ne 1]      或者[ 1 -eq 1 ] && [ 1 -ne 1 ]

逻辑或:      -o           或者||

[1 -eq 1 -o 1-ne 1]      或者[ 1 -eq 1 ] || [ 1 -ne 1 ]

总结:

1.; && ||这三个都可以用来分割命令

2.;完全不考虑前面的语句是否正确执行,都会执行;号后面的内容

3.&&需要考虑&&前面的语句的正确性,前面语句正确执行才会执行&&后的内容;反之亦然

make && make install

4.|| 需要考虑||前面的语句的非正确性,前面语句执行错误才会执行||后面的内容;反之亦然

5.如果&&和||一起出现,从左往右依次看,按照以上原则

-------------------------------------------------------------------------

二、流程控制语句

1.基本语法结构

F:false 假

T:true 真

if [ condition ];thencommandcommand
fi[ 条件 ] && command
if [ condition ];thencommand1elsecommand2
fi[ 条件 ] && command1 || command2
if [ condition1 ];thencommand1  结束elif [condition2 ];thencommand2  结束else command3
fi
注释:如果条件1满足,执行命令1结束;如果条件1不满足,再看条件2,如果条件2满足执行命令2后结束;如果条件1和条件2都不满足执行命令3结束。

http://www.dtcms.com/a/345012.html

相关文章:

  • Unreal Engine IWYU Include What You Use
  • DLT645仪表通信,串口助手调试读写地址
  • 【C#】观察者模式 + UI 线程调度、委托讲解
  • vuex如何在js文件中使用
  • NVIDIA GB200 架构详解及与 B200/H200/H100 的区别
  • 【芯芯相印】芯片设计生产全流程核心技术术语与实践指南:从架构定义到量产交付的完整图谱
  • NLP学习之Transformer(2)
  • 数据预处理学习笔记
  • Thunderbird 将推出在德国托管的加密电子邮件服务
  • Android Jetpack | Hilt
  • 快速了解深度学习
  • 数学建模--Topsis(Python)
  • 学习python第12天
  • 第5.3节:awk数据类型
  • gcc 和 make 命令
  • 机试备考笔记 17/31
  • 打工人日报20250822
  • Redis 部署模式深度对比与选型指南
  • 计算机毕设大数据方向:电信客户流失数据分析系统技术实现详解
  • ​如何用 Windows 10 ISO 文件重装系统?U盘安装教程(附安装包下载)
  • Kubernetes 调度器 详解
  • 加密货币与区块链:六大刑事重灾区
  • Vue3源码reactivity响应式篇之Reactive
  • 阿里云日志服务与Splunk集成方案(Splunk Add-on方式)实战
  • GitGithub相关(自用,持续更新update 8/23)
  • 通义万相:AI生视频提示词生成秘籍/指南
  • 高空作业智能安全带如何监控使用异常行为
  • Linux 下的网络编程
  • Linux笔记8——shell编程基础-2
  • ROS学习笔记1-幻宇机器人为模板