
08_Linux_脚本编程
本文最后更新于 2025-03-11,学习久了要注意休息哟
第一章 shell
1.1 什么是shell
是用户和Linux系统交互的一个中间件,是shell命令的集合,shell是解释性语言,C语言是编译性语言。
(1)sh
(2)csh
(3)ksh
(4)bash 当前Ubuntu中默认的命令行解析器
1.2 shell 脚本的本质
1.3 shell脚本编写及执行过程
第二章 shell 的输入输出
2.1 echo 输出 ---> 终端
2.2 read 输入 ---> 键盘
第三章 shell 变量
在shell 中有四种变量
3.1 用户自定义变量
3.1.1 如何声明
shell 是运行用户去建立变量的,不支持数据类型 , 需要注意的是 中间加空格 会被认为是三个命令
3.1.2 如何使用
$
----> echo $s$n
echo $s
${}
----> echo ${s}nihao
3.1.3 赋值方向
在程序中 都是将 将右值 赋值给 左值
3.1.4 清除变量unset
unset 不是让变量变成 0
而是直接释放 --> NULL
3.1.5 赋值区别问题
不带引号 带双引号 带单引号 带反引号
不带引号 : 也可以调变量
带双引号"" :也可以调变量
带单单引号' ' :可以有空格,不能调用变量 , 但是可以用于打印 ""
带反引号 :
3.1.6 标识符命名规则
标识符: 变量名 函数名 常量名
系统用于区分变量的符号
标识符的组成 和c语言一样
不可以和保留字冲突 这里和c语言有区别
c语言 : 关键字
shell : 命令 环境变量 关键字
3.2 系统环境变量
env 去查看系统中的所有变量
3.3 预定义变量
3.3.1 位置变量
3.3.2 预定义变量
三目运算符
第四章 数组
在空间中连续存储的同类型数据集合
4.1 数组的定义
4.2 数组的赋值
4.3 数组的访问
4.4 数组的长度
成员个数
4.5 数组的成员长度
第五章 功能性语句
5.1 测试性语句
test: test 语句可以测试三种对象, 字符串 、 数字 、 文件类型
5.1.1格式
如下,判断两个字符串是否相等
5.1.2 测试条件
第六章 结构型语句
6.1 if判断语句
在Shell中,if
语句用于根据条件执行不同的代码块。它的基本语法结构如下:
其中:
if
后面是条件,可以是命令的返回状态码(0为真,非0为假)、字符串比较、数字比较等。then
表示条件为真时执行的代码块的开始。elif
表示额外的条件,可选,用于检查其他条件。else
用于指定条件都不满足时执行的代码块,也是可选的。fi
表示结束if
语句块。
下面是一个简单的示例,演示了如何在Shell脚本中使用if
语句:
在这个例子中,如果变量score
的值大于或等于60,则输出"Pass",否则输出"Fail"。
6.2 case 分支语句
在Shell脚本中,case
语句用于根据某个变量的不同取值执行不同的操作。case
语句通常与esac
配对使用,用于结束case
块。基本的语法结构如下:
其中:
case
后面是一个表达式,通常是要匹配的变量。in
标识case
语句的开始。pattern
是用于匹配的模式,可以是通配符或正则表达式。)
表示模式的结束。commands
是与匹配的模式相关联的命令序列。;;
用于标记每个模式的结束。*)
是一个可选项,用于指定没有匹配到任何模式时执行的命令。
下面是一个示例,演示了如何在Shell脚本中使用case
语句:
在这个例子中,根据变量day
的值不同,case
语句会执行相应的命令块。
6.3 for 循环语句
在Shell脚本中,for
循环语句用于迭代一个列表中的元素,对每个元素执行相同的操作。基本的for
循环语法如下:
其中:
variable
是循环中用来存储当前迭代元素的变量名。list
是要迭代的元素列表,可以是一组单词、文件列表、数字范围等。
下面是几个示例来演示不同类型的for
循环:
- 遍历数组中的元素:
- 遍历目录中的文件:
- 使用数字范围进行迭代:
- 使用命令输出作为循环列表:
以上是几个常见的for
循环示例,你可以根据具体需求选择合适的方式来使用for
循环。
打印金字塔
6.4 while 语句
和C语言 基本一样
在Shell脚本中,while
语句用于创建一个循环,只要给定的条件为真,就会执行一系列命令。while
语句的基本语法如下:
其中:
condition
是一个用于判断循环是否继续的条件。commands
是在循环每次迭代时执行的命令。
示例:
在这个示例中,while
循环将打印计数器的值,并在每次迭代时递增计数器的值。当计数器的值达到5时,循环终止。
while
循环可以处理任何条件,条件可以是测试命令、数值比较、字符串比较等等。只要条件为真,循环就会继续执行。
第七章 shell的函数
7.1 shell函数的定义
在Shell脚本中,函数用于封装一段可重复使用的代码,并通过名称来调用它。定义和使用函数的基本语法如下:
或者也可以这样定义函数:
其中:
function_name
是函数的名称,可以根据需要自定义。commands
是函数体,包含要执行的代码块。
7.2 shell 函数的调用
下面是一个示例,演示了如何在Shell脚本中定义和调用函数:
这个例子定义了一个名为greet
的函数,它接受一个参数并向该参数打印问候语。然后使用greet
函数两次,分别传入不同的参数调用它。
在Shell脚本中,函数可以接受参数,就像普通的命令行参数一样。在函数内部,可以使用$1
、$2
等来引用传递给函数的参数。
除了简单的函数调用外,你还可以在函数中使用流程控制语句、循环、条件语句等。函数使得代码结构更加清晰,并且能够重复使用特定功能的代码块。
第八章 shell脚本的算数运算
在Shell脚本中,有几种进行算术运算的方式,其中包括使用内置的算术运算符和命令,以及使用expr
命令和let
命令。
8.1 内置算术运算符
在Shell脚本中,可以使用$((...))
语法执行基本的算术运算,例如:
8.2 使用expr
命令
expr
命令用于在Shell脚本中执行基本的算术运算,例如:
注意,在使用*
进行乘法时,需要对其进行转义,因为*
在Shell中通常用于文件名扩展。
8.3 使用let
命令
let
命令用于在Shell脚本中执行算术运算,并且可以直接将结果赋值给变量,例如:
这些方法都可以用于在Shell脚本中执行基本的算术运算。
- 感谢你赐予我前进的力量