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

[Linux] shell条件语句和if语句

一、条件语句

1.1 测试

test 测试文件的表达式是否成立

格式:test 条件表达式

           [ 条件表达式 ]

选项作用
-d测试是否为目录
-e测试目录或文件是否存在
-a测试目录或文件是否存在
-f测试是否为文件
-r测试当前用户是否有权限读取
-w测试当前用户是否有权限写入
-x测试当前用户是否有权限执行
-L测试是否为软连接文件
test

1.2 比较整数

[ 整数1 -操作符 整数2 ] 公式-eq:第一个数等于第二个数-ne:第一个数不等于第二个数-gt:第一个数大于第二个数-lt:第一个数小于第二个数-le:第一个数小于或等于第二个数-ge:第一个数大于或等于第二个数

 1.3 字符串比较

= 字符串相同
!= 字符串不相同
-z 字符串内容为空
-n 字符是否存在

格式:

[ $a = $b ] 是否相同[  $a  !=  $b ]  是否不相同[  -z  $b ]   是否为空[  -n  $a ] 字符是否存在

1.4 逻辑测试

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

           命令1 操作符 命令2...

短路与

全真才为真;一假即为假

cmd1 && cmd2

短路或

 一真才即为真;全假才为假

cmd1 || cmd2

应用

cmd1 && cmd2 || cmd3

1.5 双中括号

用法

[[ == (通配符) ]]

[[ =~ (正则表达式) ]]

1.6 () {}

用途:都可以把命令放在一起,批量执行

二、if 语句

2.1 单分支语句

格式:if 判断条件then命令语句fi

2.2 双分枝语句

格式:
if 判断条件
then
命令
else
命令
fi

实验1 

 实验2

 

2.3  多分枝语句

格式:
if 判断条件
then
命令
elif 判断条件2
then
命令
..........
else
命令
fi

 猜丁壳游戏

三、case分支语句

CASE 语句允许更清晰的脚本程序结构层次,常用于启动、重启或停止服务的脚本时,有些服务不提供此类控制脚本,您要编写 CASE 语句来编写。

case 语句主要用于以下情况:一个变量有多个值,需要对每个值执行不同的命令序列。这种情况与多分支 if 语句非常相似,只是 if 语句确定多个不同的条件,而 case 语句确定单个变量的不同值。

格式:
case $num in
条件判断1)
命令1
;;
条件判断2)
命令2
;;
条件判断3)
命令3
;;
........
*)
;;
echo " "
bash $0
;;
esac

 利用case做个简易的Linux菜单

 试试关闭防火墙

 关于 CASE 语句的说明

        必须以 "in "结束,每个模式必须以右括号") "结束。

        双分号";; "表示命令序列的结束。

        可以在模式字符串中使用方括号表示连续的范围,如"[0-9]",垂直条形符号"|"表示 "或",如 "A|B"。

        ==最后)表示默认模式,"*"相当于通配符 ===*。

http://www.lryc.cn/news/240666.html

相关文章:

  • 【陈老板赠书活动 - 18期】-如何成为架构师这几本书推荐给你
  • chrome 插件 Mobile simulator
  • JavaScript框架 Angular、React、Vue.js 的全栈解决方案比较
  • 【Vue】核心特性(响应式)
  • ESP32 http 请求
  • 【C++】拷贝构造函数,析构函数详解!
  • qml ParticleSystem3D使用介绍
  • 集团投融资大数据平台解决方案
  • 深信服技术认证“SCSA-S”划重点:渗透测试工具使用
  • CCFCSP试题编号:201803-2试题名称:碰撞的小球
  • 《安富莱嵌入式周报》第327期:Cortex-A7所有外设单片机玩法LL/HAL库全面上线,分享三款GUI, PX5 RTOS推出网络协议栈,小米Vela开源
  • 面试官:【js多维数组扁平化去重并排序】
  • C#编程题分享(3)
  • Redis下载和安装(Windows系统)
  • MySQL数据库:开源且强大的关系型数据库管理系统
  • 如何在AD的PCB板做矩形槽孔以及如何倒圆弧角
  • SpringMVC日志追踪笔记整理
  • UML建模图文详解教程06——顺序图
  • 睡前随笔记录
  • 微服务学习|Feign:快速入门、自定义配置、性能优化、最佳实践
  • 使用【画图】软件修改图片像素、比例和大小
  • DevOps 事后分析
  • fastdfs-client-java-1.30 maven 打包安装
  • 【视觉SLAM十四讲学习笔记】第三讲——旋转矩阵
  • Linux驱动开发笔记(四):设备驱动介绍、熟悉杂项设备驱动和ubuntu开发杂项设备Demo
  • C/C++ 实现Windows注册表操作
  • nginx 模块相关配置及结构理解
  • 同时创建多个websoket(初始化多个连接、断开的重连、每个连接定时发消息、每个连接存储接收的数据(vuex或者pinia))
  • C语言——指针(一)
  • 学习量化交易如何入门?