我有一堆通用的清理代码需要在某个bash脚本退出时完成,无论它是正常退出还是被中断.我想我会使用陷阱“……”EXIT伪信号来实现这一点.
原文链接:https://www.f2er.com/bash/384604.html除了通用的清理工作之外,还有一个特定的清理工作只有在脚本正常完成时才能完成.我想我可以通过让’trap’块测试一个变量来触发这个,就像这样:
#!/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调用;什么都不改变.我错过了什么?
干杯!