从零开始学习嵌入式----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://www.mzph.cn/bicheng/44314.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux基础指令解析+项目部署环境

文章目录 前言基础指令部署项目环境总结 前言 Linux的魅力在于其强大的可定制性和灵活性,这使得它成为了众多开发者和运维人员的首选工具。然而,Linux的指令系统庞大而复杂,初学者往往容易迷失其中。因此,本文将带领大家走进Linu…

C++的介绍与认识

目录 前言 1.什么是C 2.C的发展历史 3.C参考文档 4.C重要性 4.1C特点 4.2编程语言排行榜 4.3 C的应用领域 5.C学习指南 1. 基础知识 2. 面向对象编程(OOP) 3. 泛型编程 4. 标准库(STL) 结束语 前言 学习了C语言的知识…

亚马逊云科技EC2简明教程

💡 完全适用于新手操作的Amazon EC2引导教程 简述 在亚马逊云科技中,存在多种计算服务,在此,我们将会着重讨论Amazon EC2(以下简称EC2),EC2作为亚马逊云科技的明星产品、核心产品,是大多数开发者和企业用…

高考后暑假新选择:从AI聊天机器人开发入门IT领域

你好,我是三桥君 七月来临,各省高考分数已揭榜完成。而高考的完结并不意味着学习的结束,而是新旅程的开始。对于有志于踏入IT领域的高考少年们,这个假期是开启探索IT世界的绝佳时机。 不知道这些有志于踏入IT领域的高考少年们&…

即时通讯平台项目测试(主页面)

http://8.130.98.211:8080/login.html项目访问地址:即时通讯平台http://8.130.98.211:8080/login.html 本篇文章进行项目主页面的测试。 在测试前需要先对待测内容进行分类,按照功能进行分类可以分为:个人信息设置、发送/接收消息、添加好友…

TypeScript的类型谓词与控制流分析

目录 ts封装类型判断的问题类型谓词TypeScript的“控制流分析” ts封装类型判断的问题 在union.d.ts 中 全局声明一个 DataType declare type DataType | "RegExp"| "Object"| "Array"| "Function"| "String"| "Bool…

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

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

vscode连接unbuntu失败,显示Downloading vs code server...

问题: vscode连接unbuntu失败,右下角显示:Downloading vs code server... 且当再次输入密码时,仍然出现:Downloading vs code server... 重复多次,无法解决。 解决办法: 这是因为服务器端的…

华为OD机试(C卷,200分)- 字符串拼接、田忌赛马

(C卷,200分)- 字符串拼接 题目描述 给定 M&#xff08;0 < M ≤ 30&#xff09;个字符&#xff08;a-z&#xff09;&#xff0c;从中取出任意字符&#xff08;每个字符只能用一次&#xff09;拼接成长度为 N&#xff08;0 < N ≤ 5&#xff09;的字符串&#xff0c; 要求…

凌风云 - 十大网盘资源搜索 Ver 6.0 版正式上线

《凌风云》作为网盘资源专业搜索领域的佼佼者&#xff0c;汇聚了国内十大网盘的丰富资源&#xff0c;凌风云搜索弥补其他搜索引擎可能无法搜索到相关资源的缺陷&#xff0c;作为专业的搜索引擎服务网络平台&#xff0c;您只需输入关键词&#xff0c;通过智能算法精准匹配&#…

C语言2D游戏

目录 开头程序程序的流程图这个游戏的效果结尾 开头 大家好&#xff0c;我叫这是我58。在今天&#xff0c;我用C语言编译出了我的第一个2D游戏。如果你想就看这个2D游戏或者与之相关的内容话&#xff0c;就看下下面的内容吧。 程序 #define _CRT_SECURE_NO_WARNINGS 1 #defi…

第六次作业

一、视图作业 1、创建视图v_emp_dept_id_1&#xff0c;查询销售部门的员工姓名和家庭住址 2、创建视图v_emp_dept&#xff0c;查询销售部门员工姓名和家庭住址及部门名称。 3、创建视图v_dept_emp_count(dept_name,emp_count,avg_salay)&#xff0c;统计每个部门人数并计算平均…

Pandas基础03:数据排序与增删

上一节我们介绍了通过按行索引和按列索引找出相关数据的方法。本章节将进一步介绍如何筛选数据&#xff0c;并对数据进行排序、增删的方法。 示例表格和上一节相同。 1.数据筛选 Python中可以通过区域筛选&#xff0c;即获取某几行某几列的方法得到数据。例如&#xff0c;我要…

数据分表和分库原理

数据分表和分库是数据库设计中常见的扩展和优化手段&#xff0c;用于解决大数据量下的性能瓶颈问题。以下是数据分表和分库的原理&#xff1a; 一、数据分表&#xff08;Sharding&#xff09; 原理&#xff1a; 数据分表是将一个大的数据库表按照一定的规则拆分成多个较小的…

pwn误区的buffer

注意栈顶是闭合的&#xff0c;栈底才是打开的 栈图&#xff1a; |--------------------------| | | | | buffer溢出的时候&#xff0c;是从栈底到栈顶方向

vue3的常用 Composition API有哪些?

Vue.js 3.0 引入了 Composition API&#xff0c;作为一种新的组织组件逻辑的方式&#xff0c;相比于传统的 Options API&#xff0c;Composition API 提供了更灵活、更可复用的代码组织方式。 以下是 Vue 3.0 中常用的 Composition API&#xff1a;setup() 函数&#xff1a; s…

Llama-factory源码详细解读

微调 采用逐行调试的方法&#xff0c;细节来看SFT代码 #mermaid-svg-ygujiVh1wygmSv74 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-ygujiVh1wygmSv74 .error-icon{fill:#552222;}#mermaid-svg-ygujiVh1wygmSv74…

实施团队人员配备计划

实施团队人员 &#xff08;一&#xff09;项目经理职责 全面负责项目的规划、执行和监控&#xff0c;确保项目按时、按质量要求完成。与客户沟通&#xff0c;明确项目需求和目标&#xff0c;协调各方资源&#xff0c;解决项目中的重大问题。制定项目计划和预算&#xff0c;监…

LINUX命令行curl指令与python内置urllib模块

urllib是python御用的易用的轻便模块&#xff0c;curl是Linux功能强大的命令行工具&#xff0c;都是参与Web的利器。 (笔记模板由python脚本于2024年07月10日 18:41:12创建&#xff0c;本篇笔记适合喜欢Python和Linux的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网&…

【嵌入式DIY实例-ESP8266篇】-LCD1602显示DS1631传感器数据

LCD1602显示DS1631传感器数据 文章目录 LCD1602显示DS1631传感器数据1、DS1631介绍2、硬件准备与接线3、代码实现本文介绍了如何将 ESP8266 NodeMCU 板 (ESP-12E) 与 DS1631 数字温度传感器连接,其中温度值(摄氏度和华氏度)打印在 1602 LCD 屏幕上。 本项目中使用的 1602 LC…