面试题答案
一键面试在Bash脚本中,可以通过set -e
来使脚本在遇到任何命令执行失败时立即退出,也可以使用trap
命令来捕获特定信号(如脚本出错时的ERR
信号)并执行相应处理。以下是一个简单示例:
#!/bin/bash
# 打开错误追踪
set -e
# 定义回滚函数
rollback() {
echo "执行回滚操作"
# 这里添加回滚之前执行的部分命令,例如删除创建的文件或目录
if [ -f temp_file ]; then
rm temp_file
fi
}
# 捕获ERR信号,调用回滚函数
trap rollback ERR
# 模拟一系列操作
echo "创建临时文件"
touch temp_file
# 模拟一个可能失败的命令(这里将ls命令故意拼错为lss)
lss non_existent_directory
echo "操作完成(此句不会执行,因为前面命令失败)"
在上述脚本中:
set -e
确保脚本在任何命令返回非零退出状态时立即停止执行。rollback
函数定义了回滚操作,这里示例为删除之前创建的临时文件。trap rollback ERR
用于捕获ERR
信号,当脚本中任何命令失败时,会执行rollback
函数。