今天目标:学会把脚本写得像企业级一样规范,可复用、可维护、出问题能快速排查。

一、函数 function(模块化、复用)

把重复代码封装成函数,调用一次就能执行红旗 linux,不用重复写。

1. 函数语法

# 定义函数
函数名() {
  代码
}
# 调用函数
函数名

2. 实战:封装日志函数(最常用)

#!/bin/bash
# 定义日志函数
log() {
  echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1"
}
# 调用
log "脚本开始运行"
log "正在创建目录"
mkdir test
log "目录创建完成"

运行效果:

[2026-03-26 22:10:05] 脚本开始运行
[2026-03-26 22:10:05] 正在创建目录
[2026-03-26 22:10:05] 目录创建完成

二、函数传参

和脚本参数一样,用 $1 $2…

myfunc() {
  echo "参数1:$1"
  echo "参数2:$2"
}
myfunc "hello" "linux"

三、脚本输出到日志文件(企业必备)

让脚本既显示在屏幕,又写入日志:

#!/bin/bash
LOG_FILE="/tmp/script.log"
# 输出并写日志
echo "信息" | tee -a $LOG_FILE

完整版规范脚本

#!/bin/bash
LOG="/tmp/run.log"
log() {
  echo "[$(date '+%F %T')] $1" | tee -a $LOG
}
log "脚本启动"
log "测试信息"
log "脚本结束"

四、异常处理:命令失败就退出

防止脚本出错后继续执行linux系统错误日志,导致更大问题:

#!/bin/bash
set -e  # 命令执行失败,立即退出脚本
log "开始"
mkdir /root/test  # 没权限会直接退出
log "结束"

脚本模块化复用_函数封装日志文件_linux系统错误日志

五、企业级脚本模板(直接套用)

#!/bin/bash
set -e
LOG="/tmp/auto_backup.log"
log() {
  echo "[$(date '+%F %T')] $1" | tee -a $LOG
}
backup() {
  DATE=$(date +%Y%m%d)
  tar -zcvf backup_$DATE.tar.gz /home
  log "备份完成"
}
# 主流程
log "========== 脚本开始 =========="
backup
log "========== 脚本结束 =========="

linux系统错误日志_函数封装日志文件_脚本模块化复用

Day4 核心总结函数:封装重复代码,函数名(){}日志函数:统一输出格式linux是什么,方便排查tee -a:屏幕 + 文件同时记录set -e:出错自动退出linux系统错误日志,更安全

Tagged:
Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

发表回复