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

【Linux】结构化命令

结构化命令structured command:允许脚本根据条件跳过部分命令,改变执行流程。

1、if-then语句

格式1:

if command

then

   commands

fi

格式2:

if command; then

   commands

fi

运行if之后的command命令,如果它的退出状态码是0(该命令成功执行),那么就执行then里面的命令;如果是其它值,则执行脚本中的下一条命令。fi语句用来表示if-then语句到此结束。

#!/bin/bash
if pwd
thenecho "查看当前路径成功!"
fi

 

2、if-then-else语句

格式:

if command

then

   commands

else

   commands

fi 

3、嵌套if语句

 通过使用嵌套的if语句,可以在shell脚本中检查多种条件

#!/bin/bash
testuser=ln
if grep $testuser /etc/passwd
thenecho "用户$testuser存在。"echo
elseecho "用户$testuser不存在。"if ls -d /home/$testuser/thenecho "但是该用户有个路径。"fi
fi
echo "脚本运行完毕!"

4、elif语句

格式:

if command1

then

   commands

elif command2

then

   commands

fi

#!/bin/bash
testuser=ln
if grep $testuser /etc/passwd
thenecho "用户$testuser存在。"echo
elif ls -d /home/$testuser/
thenecho "用户$testuser不存在。"echo "但是该用户有个路径。"
fi
echo "脚本运行完毕!"

5、test命令

test命令可以在if-then语句中测试不同的条件,如果test命令中列出的条件成立,那么test命令就会退出并返回退出状态码0;若条件不成立,test命令就会退出并返回非0的退出状态码。

格式:test condition

if test condition

then

   commands

fi

 如果不写test命令的condition条件,那它会以非0的退出状态码退出并执行else部分的代码块。

#!/bin/bash
if test
thenecho "111"
elseecho "222"
fi

 加上test命令的condition条件

#!/bin/bash
var1="Full"if test $var1
thenecho "111"
elseecho "222"
fi

 如果test命令的condition返回非0退出状态码

#!/bin/bash
var1=""if test $var1
thenecho "111"
elseecho "222"
fi

6、使用方括号代替test命令

可以通过使用方括号定义测试条件注意:第一个方括号之后和第二个方括号之前必须留有空格,否则会报错。 

格式:

if [ condition ]

then

   commands

fi

test命令中的condition和测试条件里的condition可以判断如下3类条件:

  1. 数值比较
  2. 字符串比较
  3. 文件比较

相关文章:

【Linux】结构化命令

结构化命令structured command:允许脚本根据条件跳过部分命令,改变执行流程。 1、if-then语句 格式1: if command then commands fi 格式2: if command; then commands fi 运行if之后的command命令,如果它的退出状态码…...

ElasticSearch01-概述

零、文章目录 ElasticSearch01-概述 1、Elastic Stack (1)简介 官网地址:https://www.elastic.co/cn/ELK是一个免费开源的日志分析架构技术栈总称,包含三大基础组件,分别是Elasticsearch、Logstash、Kibana。但实际…...

docker xxxx is using its referenced image ea06665f255d

Error response from daemon: conflict: unable to remove repository reference “registrxxxxxx” (must force) - container 9642fd1fd4a0 is using its referenced image ea06665f255d 这个错误表明你尝试删除的镜像正在被一个容器使用,因此无法删除。要解决这…...

Vue 2 中 v-text 和 v-html 指令的使用详解

目录 Vue 2 中 v-text 和 v-html 指令的使用详解 v-text 指令 简介 基本语法 示例 1:基础用法 特点 v-html 指令 简介 基本语法 示例 2:基础用法 注意事项 区别与选择指南 何时使用 最佳实践 Vue 2 中 v-text 和 v-html 指令的使用详解 V…...

高级Python游戏开发:创建一款多人对战坦克大战

在本教程中,我们将用Python的Pygame库开发一款高级的坦克大战游戏。这款游戏支持多人对战、碰撞检测、子弹射击以及地图障碍生成,适合作为学习Python高级游戏开发的练习项目。 一、游戏功能概述 多人对战模式:玩家可以操作坦克,在同一屏幕上互相攻击。子弹射击:坦克可以发…...

数据结构_拓扑排序

拓扑排序 (所有点按照先后顺序排序) 1.先找到入度为0的点,记录之后,删除这个点和它的出边; 2.若有两个可选,随便选择一个 例 a的入度为0,选a [a] 随便选一个 [a,e] 再找入度为0的点 再选c 最后选d 拓…...

Edge SCDN 边缘安全加速有什么用?

Edge SCDN是最新推出的边缘安全加速服务,它是一种融合了安全防护和内容分发加速功能的网络服务技术,通过在网络边缘部署服务器节点,来优化内容的传输和用户的访问体验,同时保障网络安全。 抵御 DDoS 攻击: Edge SCDN …...

被狗咬住怎么让它松口?

当遭遇狗咬住的惊险状况,保持冷静是首要原则,慌乱只会让事态愈发糟糕。因为狗能敏锐感知人类的情绪,你的镇定能避免它因你的恐惧而愈发兴奋或紧张。 切勿盲目地用力拉扯被咬住的部位。狗的咬合力颇为强大,强行拉扯可能致使伤口撕裂…...

MySQL迁移SQLite 借助PYTHON脚本

使用 Python 脚本将 MySQL 数据库迁移到 SQLite 是一种灵活且强大的方法。 下面是一个基本的脚本示例,使用 pandas 和 sqlite3 库来实现这一过程。 这个脚本假设你已经安装了 pandas 和 mysql-connector-python 库。 步骤 安装必要的库: 如果尚未安装&#xff…...

Python什么是动态调用方法?What is Dynamic Method Invocation? (中英双语)

什么是动态调用方法? 动态调用方法指通过方法或属性的名称,在运行时而非编译时调用对象的方法或访问其属性。换句话说,在编写代码时,方法名或属性名可以是变量,只有在程序运行时才能确定调用的内容。这种特性允许程序…...

Cesium中实现仿ArcGIS三维的动态图层加载方式

Cesium 加载 ArcGIS 动态图层的方式 如果你在 Cesium 中加载过 ArcGIS 的动态图层,你会发现,Cesium 对于动态图层仍然采用类似切片图层的逻辑进行加载。也就是每个固定的瓦片 export 一张图片。 这样会造成一些问题: 请求量大,…...

数据冒险、控制冒险、结构冒险

计算机组成原理 数据冒险、控制冒险、结构冒险 对所有用户(所有程序员)可见:PSW、PC、通用寄存器 PSW(条件转移需要用到,程序员使用CMP指令的时候也需要用到所以是对用户可见)PC(跳转指令需要…...

TCA9555芯片手册解读(6)

接前一篇文章:TCA9555芯片手册解读(5) 二、详述 7. 上电复位 当电源(从0V)施加到VCC时,内部通电复位将TCA9555保持在复位状态,直到VCC达到VPOR。此时,重启条件被释放,T…...

NodeJs-fs模块

fs 全称为 file system ,称之为 文件系统 ,是 Node.js 中的 内置模块, fs模块可以实现与硬盘的交互,例如文件的创建、删除、重命名、移动,内容的写入读取等以及文件夹相关操作 写入文件 异步写入 // 导入fs模块const f…...

Transformer: Attention Is All You Need (2017) 翻译

论文:Attention Is All You Need 下载地址如下: download: Transformer Attention Is All you need Attention Is All You Need 中文 《Attention Is All You Need》是《Transformer》模型的开创性论文,提出了一种全新的基于注意力机制的架构&#xf…...

【记录】Django解决与VUE跨域问题

1 梗概 这里记录Django与VUE的跨域问题解决方法,主要修改内容是在 Django 中。当然其他的前端项目 Django 也可以这样处理。 2 安装辅助包 pip install django-cors-headers3 配置 settings.py INSTALLED_APPS [ # ... corsheaders, # ... ] 为了响应…...

Java 常见Exception异常解决方法

在Java编程中,异常处理是确保程序稳定性和健壮性的重要部分。了解常见的异常类型及其解决方法,可以帮助你编写更加健壮的代码。以下是一些常见的Java异常及其解决方法: NullPointerException:空指针异常 原因:尝试访问…...

东方通 TongWebV7 Docker 部署与 Spring Boot 集成指南

东方通 TongWebV7 Docker 部署与 Spring Boot 集成指南 文章目录 东方通 TongWebV7 Docker 部署与 Spring Boot 集成指南 一 TongWeb V7二 Spring Boot JAR 配置文件三 修改 maven 依赖四 docker compose 启动项目五 查看 docker 信息 本文详细讲解了如何在 Docker 环境中…...

TIM输入捕获---STM

一、简介 IC输入捕获 输入捕获模式下,当通道输入引脚出现指定电平跳变时,当前CNT的值将被锁存在CCR中,可用于测量PWM波形的频率、占空比、脉冲间隔、电平持续时间等参数 每个高级定时器和通用定时器都拥有4个输入捕获通道 可配置为PWMI模…...

【笔记】架构上篇Day6 法则四:为什么要顺应技术的生命周期?

法则四:为什么要顺应技术的生命周期? 简介:包含模块一 架构师的六大生存法则-法则四:为什么要顺应技术的生命周期?&法则四:架构设计中怎么判断和利用技术趋势? 2024-08-29 17:30:07 你好&am…...

Agent 框架别急着乱学:先用 LangChain 搞懂 7 个基本模块

先说结论。 如果你想系统理解 Python Agent 框架,LangChain 仍然值得作为第一篇。它不是最轻的,也不是最“自动化”的,但它把 Agent 应用里的关键零件都摆出来了:模型、工具、状态、记忆、middleware、多 Agent 路由和 tracing。…...

探索智能数据查询革命:Wren AI如何让自然语言秒变SQL语句

探索智能数据查询革命:Wren AI如何让自然语言秒变SQL语句 【免费下载链接】WrenAI Turn any AI Agents into world-class data analysts through the open context layer that gives AI agents grounded, governed memory, context, SQL across 20 data sources, th…...

Agent_Skills_万千应用_第03篇_PPT 生成 Skill:从资料到可演示幻灯片

Agent Skills 万千应用 第03篇 PPT 生成 Skill:从资料到可演示幻灯片01|场景痛点:PPT 最难的不是做,而是“讲清楚” 你有没有遇到过这种情况? 老板临时说:“明天下午做个 10 分钟汇报。” 你手里有一堆资料…...

Soundcore Liberty 5 Pro系列耳塞:价格升级功能多样,通话降噪表现超出色!

产品线内差异:耳塞相同,充电盒不同此前,Soundcore价格最高的耳塞(不包括睡眠耳塞)是售价150美元的Liberty 4 Pro,但Liberty 5 Pro售价170美元,Liberty 5 Pro Max售价230美元,这已经进…...

机器学习赋能多共振生物传感:从多维光学数据中挖掘精准检测新范式

1. 项目概述与核心思路在生物传感和医疗诊断领域,我们一直在追求更高的检测精度和更低的检测限。传统的光学折射率传感器,比如基于表面等离子体共振(SPR)或法布里-珀罗腔的传感器,其工作原理大多依赖于监测单个光学共振…...

S7-1200通讯选型指南:RS485、Profinet还是开放式TCP?看完这篇不再纠结

S7-1200通讯选型指南:RS485、Profinet还是开放式TCP?看完这篇不再纠结 在工业自动化项目中,PLC通讯方案的选择往往让工程师们陷入两难——既要考虑当下设备的兼容性,又要为未来升级预留空间。作为西门子S7-1200系列PLC的用户&…...

微信社群开发wechat ipad协议

WTAPI框架wechat ipad协议 微信社群开发,开发微信机器人/微信个人号二次开发你可以 通过WTAPI 框架实现 个性化微信功能 (例云发单助手、社群小助手、客服系统、机器人等),用来自动管理微信消息。用户仅可一次对接,完善…...

AhMyth:跨平台Android远程管理工具的完整指南与实战教程

AhMyth:跨平台Android远程管理工具的完整指南与实战教程 【免费下载链接】AhMyth Cross-Platform Android Remote Administration Tool | The only maintained version of AhMyth on github | A revival of the original repository at https://GitHub.com/AhMyth/A…...

Redis分布式锁进阶第一十一篇

一、本篇前置衔接 第一十一篇我们完成了全系列终局复盘,整理了故障排查SOP与企业级落地铁律。常规单资源锁、热点分片锁、隔离锁全部讲透,但真实复杂业务永远不是单一资源:下单要扣库存、扣优惠券、扣积分、冻结余额,多资源并行争…...

(C语言)指针详解与应用

指针是C语言的灵魂,指针与底层硬件联系紧密,使用指针可操作数据的地址,实现数据的间接访问。指针即指针变量,用于存放其他数据单元,如变量、数组、结构体和函数的首地址。若指针存放了某个数据单元的首地址&#xff0c…...