6
我有一堆通用清理代码,需要在某个bash脚本退出时执行,无论它是正常退出还是中断。我想我会用trap "..." EXIT
pseudosignal来达到这个目的。在声明“陷阱”块后,Bash信号捕获未检测到变量
除了通用清理的东西,还有一个特定的清理应该只在脚本正常完成时完成。我想我可以通过让'陷阱'块测试一个变量来触发这种情况,如下所示:
#!/bin/bash
done=false;
trap "{
#generic cleanup code goes here.
if $done
then
#cleanup to be done only on completion goes here.
echo Test;
fi
}" EXIT
#main script goes here
done=true;
但是,这是行不通的。运行以下代码将永远不会回显“测试”。在done=true;
之后添加明确的exit
调用不会更改任何内容。我错过了什么?
干杯!