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

shell脚本总结5

目录

  • 前言
  • if 条件判断语句介绍
  • 示例
  • 常见的逻辑判断运算符

前言

shell 是一种脚本语言。脚本:本质是一个文件,文件里面存放的是 特定格式的指令,系统可以使用脚本解析器 翻译或解析 指令 并执行(它不需要编译)shell 既是应用程序 又是一种脚本语言(应用程序 解析 脚本语言)。

if 条件判断语句介绍

If条件判断语句

# If条件判断语句,通常以if开头,fi结尾。也可加入else或者elif进行多条件的判断# 单分支语句 ---比较大小if (条件表达式);then语句1fi# 双分支if 语句if (表达式)语句1else语句2fi# 多支条件语句 ---判断成绩if (表达式)语句1elif语句2elif语句2fi  

示例

本篇主要介绍一些常见的逻辑判断运算符并简单举例。

因为例子可能会使用到test和[],这里就二者的关系简单进行一个声明:test本身就是用来做条件测试的,
方括号是test的另一种形式,即[ … ],这时候需要有空格和闭合的括号。如果同时使用test和[,就会导致语法错误。
本次举例多以[]展示。

示例1:

# 判断字符串长度
a="nihao"
if [ -n "$a" ]
then echo "字符串$a长度为${#a}"
else  echo "字符串$a长度为0"
fi 

结果如下:

字符串nihao长度为5

示例2:

# 判断字符串长度
a="nihao"
if test -n "$a" 
then echo "字符串$a长度为${#a}"
else  echo "字符串$a长度为0"
fi 

结果如下:

字符串nihao长度为5

示例3:

#判断字符串是否为空
a=""
if [ -z "$a" ]
then echo "字符串a长度为零"
else  echo "字符串$a长度为${#a}"
fi 

结果如下:

字符串a长度为零

示例4:

# 判断两字符串是否相同
a=""
b="niyehao"
if [ "$a" = "$b" ]
then echo "两字符:a和b相同"
else  echo "两字符:a和b不同"
fi 

结果如下:

两字符:a和b不同

示例5:

# 判断两数字是否相同
a=10
b=10
if [ $a == $b ]
thenecho "a 等于 b"
fi

结果如下:

a 等于 b

示例6:

# 判断两数字是否不同
a=10
b=8
if [ $a != $b ]
thenecho "a 不等于 b"
fi

结果如下:

a 不等于 b

示例7:

# 比较两数字大小
grade=92
if [ $grade -gt 90 ]
thenecho "Is's very good"
fi	

结果如下:

Is's very good

示例8:

# 判断文件是否存在
if [ -f a.sh ]
thenecho "文件a.sh存在"
else echo "文件a.sh不存在"
fi

结果如下:

文件a.sh存在

示例9:

# 判断目录是否存在
if [ -d "/home/11111" ]
thenecho "目录存在"
else echo "目录不存在"
fi

结果如下:

目录不存在

常见的逻辑判断运算符

-f	 	判断文件是否存在 eg: if [ -f filename ]-d	 	判断目录是否存在 eg: if [ -d dir     ]-eq		等于,应用于整型比较 equal;
-ne		不等于,应用于整型比较 not equal;
-lt		小于,应用于整型比较 letter;
-gt		大于,应用于整型比较 greater;
-le		小于或等于,应用于整型比较;
-ge 	大于或等于,应用于整型比较;
-a		双方都成立(and) 逻辑表达式 –a 逻辑表达式;
-o		单方成立(or) 逻辑表达式 –o 逻辑表达式;
-z		空字符串;
-x      是否具有可执行权限
||      单方成立;
&&      双方都成立表达式。
http://www.xdnf.cn/news/589105.html

相关文章:

  • 当AI遇上科研:北大“科学导航”重塑学术探索全流程
  • LeetCode Hot100 (哈希)
  • x-cmd install | cargo-selector:优雅管理 Rust 项目二进制与示例,开发体验升级
  • OpenCV计算机视觉实战(7)——色彩空间详解
  • 网络图片的缓存和压缩
  • 海康相机---采集图像
  • 如何解决鸿蒙应用闪退问题
  • Flutter 3.32 新特性
  • 鸿蒙Flutter实战:21-混合开发详解-1-概述
  • flutter getx路由管理、状态管理、路由守卫中间件、永久储存get_storage
  • 汇川EasyPLC MODBUS-RTU通信配置和编程实现
  • S7-1500PLC通过工艺对象实现V90总线伺服定位控制(105报文)
  • 英伟达有意入股 PsiQuantum,释放战略转向量子计算的重要信号
  • JVM常量池(class文件常量池,运行时常量池,字符串常量池)
  • Mysql数据库之索引与事务
  • 【内部教程】ISOLAR-AB配置以太网栈|超详细实战版
  • Kotlin与Flutter:跨平台开发的互补之道与实战指南
  • Armadillo C++ 线性代数库介绍与使用
  • Kotlin 极简小抄 P10(类与对象、主构造函数、带有默认参数值的主构造函数、次要构造函数)
  • 【机器学习】集成学习算法及实现过程
  • Ubuntu20.04的安装(VMware)
  • 详解受约束的强化学习(四、数学符号说明)
  • PL/Python数据库: PostgreSQL Python扩展
  • Argo CD 详解:从 GitOps 到持续交付的完整实践
  • 关于数据仓库、数据湖、数据平台、数据中台和湖仓一体的概念和区别
  • 相机标定与图像处理涉及的核心坐标系
  • 2. PyQGIS Windows下开发环境搭建
  • Java——集合类
  • 【Android】屏幕适配小合集
  • 基于python,html,echart,php,mysql,在线实时监控入侵检测系统