Linux Shell脚本复用的核心是设计可导入、可维护、可测试的函数库:独立命名、无副作用、前缀防冲突、位置参数传值、严格加载机制、输入校验、返回值控制流程,并配合shellcheck与单元测试保障可靠性。

Linux Shell 脚本复用的核心在于函数库的合理设计与加载机制——不是简单地复制粘贴代码,而是让函数像模块一样可导入、可维护、可测试。
函数库文件要独立、命名清晰、避免执行副作用
把通用函数(如日志打印、路径检查、配置读取)统一放在 lib/common.sh 这类路径下。文件本身不应直接运行逻辑,只定义函数和少量必要变量(如 LIB_DIR=$(dirname "$(readlink -f "$0")"))。避免在库文件顶部写 main 或调用函数,否则被 source 时会意外触发。
- 函数名加前缀防冲突,例如
log_info、fs_is_writable - 用
return 0表示成功,非零值表示具体错误类型(如return 1表示参数缺失) - 不依赖全局变量传参,优先用位置参数;必须共享状态时,用只读变量并加注释说明用途
主脚本通过 source 安全加载,支持相对/绝对路径回退
在主脚本开头用健壮方式引入库:
- 先尝试从当前目录同级的
lib/加载:source "${0%/*}/../lib/common.sh" 2>/dev/null || { echo "无法加载函数库"; exit 1; } - 若失败,再查环境变量
LIB_PATH或系统级路径(如/usr/local/lib/shell/) - 用
set -o nounset和set -o pipefail开启严格模式,防止未定义变量或管道错误被忽略
函数内部做输入校验,对外暴露简洁接口
每个函数应自行判断关键参数是否存在、是否合法,而不是把校验责任推给调用方:
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~