调试技巧 #
一、调试选项 #
bash
#!/bin/bash
# 显示执行的命令
bash -x script.sh
# 显示命令和输入
bash -xv script.sh
# 检查语法
bash -n script.sh
二、set选项 #
bash
#!/bin/bash
# 显示执行的命令
set -x
# 遇到错误退出
set -e
# 使用未定义变量报错
set -u
# 管道错误退出
set -o pipefail
# 组合使用
set -euo pipefail
三、调试函数 #
bash
#!/bin/bash
debug() {
if [[ "$DEBUG" == "true" ]]; then
echo "[DEBUG] $*" >&2
fi
}
DEBUG=true
debug "变量值: $var"
四、错误追踪 #
bash
#!/bin/bash
# 显示错误位置
trap 'echo "错误发生在第 $LINENO 行"; exit 1' ERR
# 使用caller
show_call_stack() {
local frame=0
while caller $frame; do
((frame++))
done
}
trap 'show_call_stack' ERR
五、实战示例 #
bash
#!/bin/bash
# 完整的调试脚本模板
#!/bin/bash
set -euo pipefail
# 调试模式
if [[ "${DEBUG:-false}" == "true" ]]; then
set -x
fi
# 错误处理
trap 'error_handler $? $LINENO' ERR
error_handler() {
echo "错误: 脚本在第 $2 行失败,退出码: $1"
exit $1
}
# 主逻辑
main() {
echo "执行主逻辑"
}
main "$@"
下一步 #
你已经掌握了调试技巧,接下来让我们学习 错误处理!
最后更新:2026-03-27