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
調用不會更改任何內容。我錯過了什麼?
乾杯!