Shell Trap: 异常处理的利器
文章目录
1.由来
trap 是 shell 编程中用于捕获和处理信号的关键命令。它允许我们在发生异常或特定事件时执行自定义操作,例如清理资源、记录日志或报告错误。trap 命令最早出现在 Bourne Shell 中,并被广泛应用于各种 shell 脚本中。
2. 主要用法及代码示例
以下是 trap 命令的十种主要用法及其代码示例:
| 用法 | 示例代码 |
|---|---|
| 捕获并处理指定信号 | trap 'echo "Signal received."' INT |
| 忽略指定信号 | trap '' TERM |
| 恢复默认的信号处理方式 | trap - INT |
设置 EXIT 信号处理函数 |
trap 'cleanup' EXIT |
在函数内部设置 RETURN 信号处理函数 |
func() { trap 'cleanup' RETURN; ... } |
| 清除所有已设置的信号处理函数 | trap - INT TERM EXIT |
| 执行命令并在结束时恢复先前的信号处理方式 | trap 'cmd' EXIT; cmd |
在循环中使用 trap 避免在接收到信号时终止循环 |
while true; do trap 'break' INT; ... ; done |
| 使用函数作为信号处理函数 | trap 'cleanup' INT; cleanup() { echo "Cleaning up..."; } |
| 处理多个信号 | trap 'echo "Signal 1 received."' SIGUSR1; trap 'echo "Signal 2 received."' SIGUSR2 |
3.最佳实践
以下是一些使用 tra

ShellTrap是shell编程中的关键命令,用于捕获和处理信号,包括清理资源、记录错误日志和优雅处理脚本终止。文章介绍了trap的基本用法、多种示例以及与kill、psignal和sigaction的区别。
最低0.47元/天 解锁文章

1026

被折叠的 条评论
为什么被折叠?



