1、Shell脚本概述
1.1、什么是Shell脚本
Shell脚本是一种用Shell语言编写的脚本程序。Shell既是一种命令语言,又是一种程序设计语言
在Unix和类Unix环境(例如Linux和Mac OS)下,我们可以通过Shell来与操作系统进行交互
Shell脚本就像是一个命令序列的集合,将这些命令写入一个文件,就构成了一个Shell脚本
1.2、Shell脚本的应用场景
Shell脚本的主要作用是自动化执行常用命令和任务,节省手动执行的时间和精力。具体的应用场景非常广泛,例如:
- 系统管理:自动化安装和配置软件,系统监控,日志分析等
- 文件操作:批量修改文件名,备份和恢复数据等
- 测试:自动化测试,性能监测等
1.3、创建和执行一个Shell脚本
1)创建一个Shell脚本
通常,Shell脚本的文件名以.sh
(代表Shell)为后缀。可以使用vi/vim
命令来创建一个Shell脚本文件,然后输入Shell命令即可
例如,创建一个名为hello.sh
的Shell脚本:
vim ./hello.sh
在Shell脚本文件中写入一条命令:
#!/bin/bash
echo "Hello, World!"
需要注意的是,每个Shell脚本应以#!/bin/bash
(或其他Shell解释器)开头,这称为Shebang,Shebang告诉系统使用哪个Shell解释器来执行脚本
例如,以#!/bin/bash
开头的⽂件,程序在执⾏时会调⽤/bin/bash
,也就是Bash
解释器; 以#!/usr/bin/python
开头的⽂件,表示指定Python解释器来执行脚本文件
#!
是一个约定的标记,它告诉系统根据Shebang中指定的解释器来执行脚本文件
2)执行一个Shell脚本
执行一个Shell脚本有两种方法:作为可执行程序和作为解释器参数
A、作为可执行程序
保存并关闭Shell脚本文件后,需要给该脚本文件添加执行权限:
chmod +x ./hello.sh
执行一个Shell脚本:
./hello.sh
一般写成./hello.sh
,如果写成hello.sh
,Linux系统会去系统变量PATH中寻找该文件
B、作为解释器参数
另一种执行方式是,直接运行解释器,其参数就是Shell脚本文件名,例如
sh hello.sh
python hello.sh
使用这种执行方式的脚本文件,不需要在第一行指定Shebang解释器信息,也无需给脚本文件添加执行权限
1.4、Shell脚本的编写规范
在编写Shell脚本时,应遵循一些基本的规范和最佳实践:
- 每个Shell脚本应以
#!/bin/bash
(或其他Shell解释器)开头,这行告诉系统使用哪个Shell解释器来执行脚本 - 脚本应具有清晰的结构和合理的注释,以便其他人(或未来的自己)理解它的作用和工作原理
- 脚本应尽量避免使用硬编码的值,而是使用变量,这样更易于修改和重用代码
- 脚本应检查其依赖项(例如必须的系统命令或环境变量)是否存在,如果不存在,应优雅地失败,并给出错误信息
- 脚本应在可能的地方使用错误处理,例如,如果尝试删除一个不存在的文件,脚本应能处理这种错误情况
- 如果脚本需要以特定的用户(例如
root
用户)身份运行,应在脚本开始处检查当前用户,如果不是预期用户,给出错误信息并退出
2、变量与参数传递
Shell变量与参数传递详见文章:传送门
3、Shell运算符
Shell运算符详见文章:传送门
4、输出、重定向与管道符
Shell输出、重定向与管道符详见文章:传送门
5、控制结构(三大结构)
Shell控制结构(三大结构)详见文章:传送门
6、函数与模块化编程
Shell函数与模块化编程详见文章:传送门
7、Shell文本处理
Shell文本处理详见文章:传送门
更多内容参考文章:https://www.cnblogs.com/kcloveworld/p/17984476