从零开始学习嵌入式----Linux系统中shell脚本

目录

Shell脚本入门:玩转功能语句和数组,提升你的效率!

一、功能语句:让你的脚本更灵活

1. 条件语句:if、else、elif

2. 循环语句:for、while

二、数组:处理多项数据的好帮手

1. 声明数组

2. 访问数组元素

3. 获取数组长度

4. 遍历数组

三、案例实战:批量修改文件名

四、总结

五、思维导图


Shell脚本入门:玩转功能语句和数组,提升你的效率!

Shell脚本是Linux系统管理员和开发人员的必备技能,它可以帮助你自动化日常任务,提高工作效率。在这篇文章中,我们将深入浅出地介绍Shell脚本中的功能语句和数组,并结合实际案例,带你快速入门。

一、功能语句:让你的脚本更灵活

1. 条件语句:if、else、elif

条件语句是编程语言的基础,Shell脚本也不例外。if语句允许你根据条件执行不同的代码块。

#!/bin/bash#  #
# 判断文件是否存在
if [ -f 「myfile.txt」 ]; thenecho 「文件已找到!」
elseecho 「文件不存在!」
fi

在这个例子中,如果myfile.txt文件存在,就会输出「文件已找到!」,否则输出「文件不存在!」。

elif语句用于添加多个条件判断,例如:

#!/bin/bash#  #
# 判断分数等级
score=85#  #
if [ $score -ge 90 ]; thenecho 「优秀」
elif [ $score -ge 80 ]; thenecho 「良好」
elif [ $score -ge 70 ]; thenecho 「中等」
elseecho 「不及格」
fi

2. 循环语句:for、while

循环语句用于重复执行一段代码,直到满足特定条件。

  • for循环:适用于遍历列表中的元素。

#!/bin/bash#  #
# 遍历列表
names=(「Alice」 「Bob」 「Charlie」)
for name in 「${names[@]}」; doecho 「Hello, $name!」
done

  • while循环:适用于在条件满足时重复执行代码块。

#!/bin/bash#  #
# 计算1到10的和
count=1
sum=0#  #
while [ $count -le 10 ]; dosum=$((sum + count))count=$((count + 1))
done#  #
echo 「1到10的和为:$sum」

二、数组:处理多项数据的好帮手

数组可以存储一系列数据,方便你对多个数据进行操作。

1. 声明数组

# 方法一:使用括号
names=(「Alice」 「Bob」 「Charlie」)#  #
# 方法二:逐个赋值
names[0]=「Alice」
names[1]=「Bob」
names[2]=「Charlie」

2. 访问数组元素

使用${数组名[索引]}的方式访问数组元素,索引从0开始。

echo ${names[0]}  # 输出 Alice

3. 获取数组长度

使用${#数组名[@]} 获取数组长度。

echo ${#names[@]}  # 输出 3

4. 遍历数组

可以使用for循环遍历数组:

#!/bin/bash#  #
# 遍历数组并输出每个元素
for name in 「${names[@]}」; doecho $name
done

三、案例实战:批量修改文件名

假设你需要将当前目录下所有.txt文件的后缀名改为.log,可以编写如下Shell脚本:

#!/bin/bash#  #
# 获取所有.txt文件
files=(*.txt)#  #
# 遍历文件列表,修改文件名
for file in 「${files[@]}」; donew_file=「${file%.txt}.log」mv 「$file」 「$new_file」echo 「已将 $file 重命名为 $new_file」
done

四、总结

本文介绍了Shell脚本中的功能语句和数组,并结合案例讲解了如何使用它们。熟练掌握这些基本语法,可以帮助你编写更强大、更高效的Shell脚本,自动化完成各种任务。当然,Shell脚本博大精深,还有很多高级语法和技巧需要我们不断学习和探索。

五、思维导图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3227431.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

【Neo4j】实战 (数据库技术丛书)学习笔记

Neo4j实战 (数据库技术丛书) 第1章演示了应用Neo4j作为图形数据库对改进性能和扩展性的可能性, 也讨论了对图形建模的数据如何正好适应于Neo4j数据模型,现在到了该动 手实践的时间了。第一章 概述 Neo4j将数据作为顶点和边存储(或者用Neo4j术语,节点和关系存 储)。用户被定…

雅马哈调音台监听无声

近日客户联系我说雅马哈调音台监听坏了,更换了音箱也不成。 客户的体调音台是雅马哈32X路模拟调音台,监听为了省事,将耳机输出口与有源音箱连接。 一直使用正常,因此感到很奇怪。到了现场一眼就看到问题了。 一路PFL开关按下了&a…

使用mid360进行fast_lio建图、octomap生成栅格地图

前面我已经实现了fast_lio建图并使用octomap转为三维栅格地图,今天来填上次留的坑 使用Livox-Mid360激光雷达,复现FAST_LIO(保姆级教程)-CSDN博客 这是我上次写的,来复现上次失败的,这个教程:…

解决linux服务器下微信公众号授权和业务接口授权失败的问题

我们的公众号web站点代码在Windows服务器IIS下运行没有问题,迁移到linux 服务器的nginx下之后,出现了微信授权和接口授权无法通过引起的问题。如下图所示: 经过排查,发现是因为nginx配置默认对 http 配置节下的 underscores_in_he…

Shell:一行命令如何实现采集某一进程一段时间内CPU使用率

首先,能想到使用top查看进程的CPU使用率,以java进程编号251346为例进行介绍 top -d 1 -p 251346 -d 表示每秒采集一次 CPU使用率是显示出来了,但这样只能在屏幕上原地刷新,我们希望能把数据每时每刻的数据都保存下来,…

​​​​​​​生物素化药物分子的特性

生物素化药物分子是指将生物素(维生素H,也称维生素B7或维生素B8)共价连接到药物分子上的过程。这种处理方式为药物分子带来了多种特性和优势,以下是对生物素化药物分子的详细解析: 一、生物素的基本特性 生物素是一种水…

真正高水平的一流领导,从不和员工打成一片,这3点原因太真实

真正高水平的一流领导,从不和员工打成一片,这3点原因太真实 第一个:分化团队 在团队管理过程中,如果人不多,那还好。 可一旦人数多了,领导就不可能面面俱到,顾及到每一个人。 肯定会出现&am…

自媒体运营怎样引流客源?

不管是企业还是个人,越来越多都在做自媒体引流运营,那有什么引流客源的方式呢? 高质量内容:创作并分享有价值的内容,吸引目标受众,提升内容的分享和传播效果。 SEO优化:优化文章标题、关键词和…

力扣 160相聚链表

注意 判断是否有交点 用while(A! B) 其中A A nullptr? headb:A->next;B同理 注意,while循环的退出条件是AB指针指向同一个,如果没有相交,仍然可以退出 当AB都为NULLPTR时退出

探索一个精美的商品橱窗布局:HTML与CSS的魔法

在今天的文章中,我们将一起探索一个精心设计的商品橱窗布局,这个布局完全通过HTML和CSS来实现。这个布局不仅美观,而且功能强大,非常适合用于展示商品或任何需要网格化布局的内容。 效果图: 一、HTML结构 首先&#…

应急响应——日志分析攻击攻击

日志提取 它会再3000端口开放一个服务 日志分析 星图 缺点就是东西太少 goacess(多检测流量和异常)cc攻击之类的,安全问题可能不行)可以实时监控 webalb脚本 其他中间件也支持 系统层面 f8自动安装工具 logantracer(windows日志检测&#xff…

一文看尽:各大数据公司和 AI 结合进展

一、前言 前面给大家梳理了一下大数据领域领先厂商 snowflake 和 databricks 的最新进展,还挺受欢迎,都是大几千的阅读量。没有看过的可以翻看下面的链接: 大模型时代最懂数据的公司 databricks snowflake 不再是个数据仓库公司了 应该说…

PHP工单预约表单系统小程序源码

🔧【高效办公新利器】工单预约表单系统大揭秘 💼【一键提交,工单管理新高度】 你还在为繁琐的工单提交流程头疼吗?工单预约表单系统,让你的工单管理步入高效时代!只需简单几步,填写必要信息&a…

关于气象探测设备的介绍

气象探测设备概述 气象探测设备是用于收集、记录和分析大气环境信息的专用工具。它们能够实时监测气温、湿度、气压、风速、风向、降雨量等多种气象要素,为天气预报、气候研究、农业生产和环境保护等领域提供重要数据支持。气象探测设备种类繁多,包括地…

昇思学习打卡-13-文本解码原理--以MindNLP为例

文章目录 搜索方法集束搜索(beam search)贪心搜索(greedy search) 采样池处理结果 一个文本序列的概率分布可以分解为每个词基于其上文的条件概率的乘积 搜索方法 集束搜索(beam search) Beam search通过在每个时间步保留最可能的 num_beams 个词,并从中最终选择出…

【网络安全】Oracle:SSRF获取元数据

未经许可,不得转载。 文章目录 前言正文漏洞利用 前言 Acme 是一家广受欢迎的播客托管公司,拥有庞大的客户群体。与许多大型运营公司一样,Acme 采用了Apiary的服务,使用户能够安全高效地管理他们的播客。 Apiary 于2017年初被Or…

【短小精悍】仅需6GB显存,你就可以跑起来清华智谱的ChatGLM-6B-Int4大模型

【短小精悍】仅需6GB显存,你就可以跑起来清华智谱的ChatGLM-6B-Int4大模型 版本环境一、序二、ChatGLM-6B-Int4大模型2.1 简介2.2 模型 三、运行环境3.1 下载模型3.2 下载环境3.3 下载代码 四、运行4.1 运行代码4.2 运行结果4.3 GPU使用情况 五、相关问题5.1 window…

Jenkins 构建 Web 项目:构建服务器和部署服务器分离, 并且前后端在一起的项目

构建命令 #!/bin/bash cd ruoyi-ui node -v pnpm -v pnpm install pnpm build:prod # 将dist打包成dist.zip zip -r dist.zip dist cp dist.zip ../dist.zip

(一)、python程序--模拟电脑鼠走迷宫

一、绪论 1、简介 电脑鼠走迷宫是一种比赛,制作实物电脑鼠小车在迷宫找目标点,用时最短者获胜。考验参赛选手软硬件结合的能力。 2、走迷宫模拟软件中已实现功能 1、点击迷宫墙壁可编辑迷宫,并且可保存和加载迷宫形状文件; 2、…

【记录】LaTex|LaTex 代码片段 Listings 添加带圆圈数字标号的箭头(又名 LaTex Tikz 库画箭头的简要介绍)

文章目录 前言注意事项1 Tikz 的调用方法:newcommand2 标号圆圈数字的添加方式:\large{\textcircled{\small{1}}}\normalsize3 快速掌握 Tikz 箭头写法:插入点相对位移标号node3.1 第一张图:插入点相对位移3.2 第二张图&#xff1…