Linux Shell构建基本脚本
一、课程核心内容
本节课学习基础Shell脚本编写,包含八大模块:多命令组合、脚本文件创建、输出提示、变量、输入输出重定向、管道、数学运算、脚本退出状态。
二、多条命令合并执行
在同一行使用分号分隔多条命令,系统会从前到后依次执行,效果等同于分行单独运行每条命令。
三、Shell脚本文件创建与运行
- 脚本首行固定标识
首行特殊标记用于告知系统使用bash程序解析脚本,其余带#的内容均为注释,仅作说明不会执行。 - 脚本运行前提
脚本文件默认无执行权限,权限不足时会报错,需先添加执行权限;之后通过相对或绝对路径执行脚本。也可将脚本所在目录加入系统环境变量,直接输入文件名运行。
四、echo输出提示信息
- 基础作用:自定义文字提示,方便看懂脚本运行流程;
- 引号使用规则:文本包含引号时,用另一种引号包裹整体文本;
- 不换行输出参数:搭配参数使用后,文字与后续命令输出会显示在同一行。
五、变量使用
1. 系统环境变量
系统内置预设变量,直接调用即可读取用户、目录、用户ID等系统信息;如需输出美元符号,必须添加转义符,否则系统会识别为变量标识。
2. 自定义变量
变量名仅能由字母、数字、下划线组成,有长度限制且区分大小写;赋值时等号两侧不能存在空格,调用变量前加美元符号。
3. 命令替换
可将命令运行结果存入变量,提供两种写法,方便后续重复调用命令输出内容,还能结合日期生成专属命名文件。
六、输入输出重定向
1. 输出重定向
单大于号:将命令输出写入文件,覆盖文件原有全部内容;
双大于号:在文件末尾追加内容,保留原有数据。
2. 输入重定向
小于号读取文件内容,将文件数据传入命令处理;统计命令可统计文本行数、单词数量、字节总数。
3. 内联输入重定向
无需创建文件,直接在命令行临时输入数据,首尾使用相同标记区分数据边界。
七、管道
管道符号可把前一条命令的输出直接作为后一条命令的输入,无需借助中间文件,支持连续串联多条命令,多用于筛选、分页查看大量输出内容。
八、数学运算
1. 整数运算
两种实现方式:expr命令操作符格式繁琐,部分符号需要转义;方括号运算写法简洁易读。原生Shell仅支持整数计算,除法会直接舍弃小数部分。
2. 浮点小数运算
借助bc计算器实现小数计算,可设置保留小数位数;支持交互手动计算,也能在脚本中结合命令替换完成运算。
九、脚本退出状态
- 退出状态码说明
每条命令执行结束都会返回0-255的数字状态码,数字代表运行结果,专用变量可读取上一条命令的状态;0代表执行成功,其余数字对应各类报错场景。 - 自定义退出码
脚本默认以最后一条命令的状态码结束,可使用exit指令手动指定脚本退出时返回的状态数字。
练习
练习2)
练习3)
练习4)
练习5)
