您好我有一个bash脚本执行一些文件操作,因为脚本的最后一步我发出一些必须执行的清理命令。
问题是如果脚本以某种方式手动终止(使用cmd-z等),这些最终步骤不会被执行,然后必须手动完成。有没有办法确保这样的行动?类似于最终的异常处理块。示例代码如下
#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
许多团队成员会花很多时间执行此脚本来切换和管理他们的环境,并且大部分时间都可以完美地运行。当脚本在清理完成之前中途终止并且重命名的文件夹和文件使脚本再次执行时,会发生此问题。
这里有什么可以解决的吗?
答案 0 :(得分:3)
您可以捕获信号
trap finally SIGINT
最后是一些功能。这不会使你的脚本免于SIGKILL
,因为它是“无法处理的”
请参阅http://linux.die.net/Bash-Beginners-Guide/sect_12_02.html