【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类条件:
- 数值比较
- 字符串比较
- 文件比较
相关文章:
【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 库。 步骤 安装必要的库: 如果尚未安装ÿ…...
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》模型的开创性论文,提出了一种全新的基于注意力机制的架构…...
【记录】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…...
SEO推广合作价目表对网站排名有什么影响_SEO推广合作价目表的合理定价原则是什么
SEO推广合作价目表对网站排名有什么影响 在当今数字化时代,网站的SEO推广合作价目表不仅仅是企业与营销公司之间的商业协议,更是影响网站在搜索引擎上排名的一个重要因素。SEO推广合作价目表如何制定,对于提升网站的搜索引擎排名有着至关重要…...
从零开始:使用mmdetection3d和FCOS3d模型训练nuscenes-mini数据集的完整流程
从零构建:基于FCOS3D与NuScenes-mini的3D目标检测实战指南 在自动驾驶和机器人感知领域,3D目标检测技术正经历着前所未有的发展。OpenMMLab生态系统中的mmdetection3d框架,凭借其模块化设计和丰富的算法支持,已成为该领域研究与实…...
基于Agent框架的雪女-斗罗大陆-造相Z-Turbo自动化创作系统
基于Agent框架的雪女-斗罗大陆-造相Z-Turbo自动化创作系统 你有没有过这样的经历?脑子里有一个特别酷的画面,比如“一个悲伤的魂师,独自站在漫天飞雪的冰原上,眼神里藏着故事”,但当你打开绘画软件,或者尝…...
OpenClaw技能扩展实战:用Gemma-3-12b-it自动生成技术博客并发布
OpenClaw技能扩展实战:用Gemma-3-12b-it自动生成技术博客并发布 1. 为什么需要自动化内容生产 上周我连续熬了三个晚上写技术博客,每次都是深夜对着屏幕敲键盘到凌晨两点。第三天早上开会时,我突然意识到一个问题:为什么不让AI帮…...
OpenClaw植物养护仪:Qwen3-14b_int4_awq分析的传感器数据与照料建议
OpenClaw植物养护仪:Qwen3-14b_int4_awq分析的传感器数据与照料建议 1. 为什么需要智能植物养护助手 去年冬天,我养了三年的一盆琴叶榕突然开始落叶。作为程序员,我第一反应是写个脚本监控它的生长状态——但很快发现,植物养护远…...
基于STM32的空气净化器设计
一、系统介绍 基于STM32的空气净化器设计是一个集硬件与软件于一体的综合性项目,旨在通过实时监测环境参数并动态调整净化设备的工作状态,为用户提供更加健康、舒适的室内环境。以下是对该设计的详细介绍: 一、设计目标与原理 基于STM32的空气…...
损失2万块买来的教训:出海独立站如何从“裸奔”走向云原生高可用架构?
上个月,我帮一位做跨境宠物用品的老板做了一次紧急的架构救火。起因是他发现网站在正常投放 Google Ads 的情况下,突然大面积访问超时。我介入排查后发现,服务器 CPU 已经飙升到 100%,Nginx 日志里密密麻麻全是针对 /api/checkout…...
SevenSegmentSerial:HT16K33七段数码管多协议驱动库
1. SevenSegmentSerial 库概述SevenSegmentSerial 是一个专为 SparkFun 七段数码管串行显示模块(型号:COM-11629、COM-12781、Qwiic-enabled COM-15432 等)设计的轻量级嵌入式驱动库。该模块内部集成 HT16K33 驱动芯片,支持 4 位共…...
AI应用开发工程师(LLMAgent方向)技术深度解析与面试指南
引言 随着人工智能技术的飞速发展,大型语言模型(LLM)如GPT、Claude、Llama等已成为推动AI应用的核心引擎。AI应用开发工程师(LLM&Agent方向)专注于构建基于LLM的智能代理系统,实现自然语言处理、决策支持和自动化工作流。该职位要求深厚的编程功底、系统设计能力和对…...
CSS Subgrid:网格布局的终极进化
CSS Subgrid:网格布局的终极进化当 Grid 遇见 Subgrid,嵌套布局终于有了完美的解决方案。一、Subgrid 解决了什么问题? 作为一名追求像素级还原的 UI 匠人,我深知嵌套网格的痛苦——子元素的网格线永远对不齐父元素,就…...
