嵌入式Linux系统Shell基础学习

本文介绍了嵌入式Linux系统中Shell的基础知识,包括基本语法、日志输出、变量、分支控制ifelse、循环结构如for和while、case分支语句、循环控制、变量运算符和函数的使用。详细讲解了每个概念,并提供了相应的示例代码,适合初学者学习。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Shell是用户态进行高效,安全访问Linux内核态的一个中间桥梁,是一个应用程序,同时是一个可编程的应用程序(也叫解析器),这种编程的语言是脚本语言(Shell 脚本,由解析器解析运行的语言);和音乐播放器一样(酷狗,QQ音乐,网易云),Shell这个解析器也有很多类型:sh、bash、csh、tcsh、ash;在X86服务器平台我们基本都是使用bash,bash也是Linux原生支持的解析器,由GNU组织开发,兼容sh(这意味着针对 sh 编写的 Shell 代码可以不加修改地在 bash 中运行);但是在嵌入式Linux的平台上,出于可移植性考虑,我们使用sh的规范

1  基本语法

1.1 第一个程序

Shell脚本的相关代码我们放在~/workspace/basics/shell这个目录下。

Shell脚本的命名方式是以.sh为后缀的文件,比如test.sh;运行方式有两种,一种是通过解析器:sh test.sh的方式,另一种是给文件加可执行权限,然后直接运行:chmod +x test.sh , ./test.sh。

Shell脚本的开头需要包含一个基本说明:#!/bin/sh,除了这一句,注释需要以#号开头,如下例子:

脚本是解析运行的语言,不需要编译,直接运行:

1.2  日志输出

为了区分输出信息的重要性,我们对echo这个命令进行封装,使其能输出不同颜色的日志,达到区分重要性的作用,代码如下:

我们给echo封装出两个接口,一个是:LOGD,一个是LOGE,用来输出不同颜色的日志;说明一下,这个地方用到了函数的概念,我们暂时忽略,后面会讲到,这里用法和echo是一样的。

运行如下:

1.3 变量

定义变量时不需要指明类型,直接赋值就可以,注意变量和值之间不能有空格,不然运行会出错;命名只能使用英文字母,数字和下划线,首个字符不能以数字开头,基本会用到的变量类型就两种:数值 和 字符串:

使用一个定义过的变量,只要在变量名前面加美元符号即可:

其中花括号是可选的,也就是说可以用 $value,$string来表示变量,但是我们用的时候把花括号加上形成好习惯,不然不完全熟悉shell语法在一些多变量连接时会出问题。

### 嵌入式 Linux Shell 命令教程 #### 了解 Shell 的基本概念 Shell 是一种命令解释器,负责接收用户的指令并将这些指令转化为操作系统可以理解的形式来执行相应操作。通过编写 Shell 脚本——即包含一系列按顺序排列的命令集合的文本文件,用户可以让计算机自动完成复杂的任务处理流程[^2]。 #### 创建简单的 Shell 脚本实例 为了更好地掌握如何利用 Shell 进行开发,在这里给出一段用于展示当前工作目录下所有 .txt 文件大小总和的小型脚本例子: ```bash #!/bin/bash total=0 for file in *.txt; do size=$(stat --format=%s "$file") total=$((total + size)) done echo "Total size of all txt files is $total bytes" ``` 此段代码首先定义了一个名为 `total` 的变量用来保存累加后的字节数;接着遍历当前路径下的每一个 `.txt` 类型文档,并调用 `stat` 工具获取其实际占用空间数;最后输出统计结果给终端显示。 #### 探索更多实用工具与技巧 除了上述提到的基础功能之外,还有许多其他重要的知识点等待探索,比如条件判断语句、循环结构以及函数封装等特性都能极大提升工作效率。对于希望深入研究的朋友来说,《Linux基础篇三提供了丰富的关于 shell 命令的内容介绍[^1]。 #### 学习资源推荐 针对想要进一步提高自己在这方面技能水平的学习者而言,《嵌入式 Linux Shell 编程》是一份不可多得的好资料,它不仅涵盖了从入门到精通所需的知识要点,还附带大量实战案例供读者练习巩固所内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值