Shell工程化:配置化脚本
本文最后更新于 2026年7月9日 上午
Shell工程化:配置化脚本
一、为什么要使用配置文件
在初学阶段,很多脚本会将服务器 IP、用户名、端口等信息直接写在代码中,这种方式称为硬编码(Hard Code)。
例如:
1 | |
当配置发生变化时,需要修改脚本源码,不仅维护成本高,还容易引入新的错误。
工程化开发应遵循代码负责逻辑,配置负责参数的原则,实现代码与配置解耦。
二、创建配置文件
通常将配置独立存放在 .conf 文件中,例如:
1 | |
脚本中通过 source 加载配置:
1 | |
或:
1 | |
加载完成后,可直接使用配置变量:
1 | |
三、推荐项目目录结构
工程项目建议采用统一目录结构:
1 | |
不同配置按功能分类存放,便于维护和扩展。
四、加载与校验配置
推荐先定义配置文件路径,再统一加载。
1 | |
加载前应检查文件是否存在:
1 | |
进一步可封装为函数:
1 | |
五、配置变量规范
建议所有配置变量采用全大写加下划线命名,例如:
1 | |
避免使用无意义变量名:
1 | |
清晰的命名有助于后期维护。
六、配置默认值与校验
对于可选配置,可设置默认值:
1 | |
表示当 SERVER_PORT 为空时,默认使用 22。
对于关键配置,应进行非空校验:
1 | |
工程项目通常封装统一校验函数:
1 | |
七、多环境配置管理
大型项目通常需要区分不同运行环境,例如:
1 | |
根据环境加载对应配置:
1 | |
无需修改业务代码即可切换环境,提高脚本复用性。
八、工程最佳实践
推荐所有 Shell 工程统一采用以下流程:
- 定义配置文件路径。
- 检查配置文件是否存在。
- 使用
source加载配置。 - 校验关键配置项。
- 使用默认值处理可选参数。
- 保持代码与配置完全分离。
这种方式能够显著提高脚本的可维护性、可扩展性,并方便部署到不同服务器或运行环境。
Shell工程化:配置化脚本
http://example.com/1d6d8b57.html