2014-04-19 119 views
0

嗨我有一個bash腳本執行一些文件操作,因爲腳本的最後一個步驟我發出一些必須執行的清理命令。Bash腳本,清理步驟。

問題是,如果腳本以某種方式手動終止(使用cmd-z等),這些最後的步驟不會被執行,然後必須手動完成。有沒有辦法確保這種行爲?像異常處理的finally塊。示例代碼如下

#rename a folder ($1 being a parameter passed to the script) 
mv ../project/game ../project/$1 
# perform some steps within the new folder 
.... 
# now comes the cleanup part 
mv ../project/$1 ../project/game 

這個腳本被許多團隊成員執行了大量的時間來切換和管理他們的environemnts並在大多數時間完美的作品。在清理完成之前腳本中途終止並且重命名的文件夾和文件將腳本從執行再次中斷時,問題就會發生。

有沒有什麼可以做到這裏來解決這個問題?

+0

使用'trap'命令。示例:http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_12_02.html –

回答