【发布时间】:2017-02-18 20:59:31
【问题描述】:
我在问自己,当我使用 crtl+c 终止 bash 脚本时,该脚本是否会在中止前执行最后一个命令,例如删除由该脚本创建的文件?
【问题讨论】:
我在问自己,当我使用 crtl+c 终止 bash 脚本时,该脚本是否会在中止前执行最后一个命令,例如删除由该脚本创建的文件?
【问题讨论】:
您可以捕获伪信号EXIT 以在出于任何原因退出之前执行某些操作:
trap 'rm myfile' EXIT
或捕获 INT 以在退出前执行命令,因为 Control-C:
trap 'rm myfile' INT
【讨论】:
您希望 ctrl-c 捕获用于后期脚本清理。
https://rimuhosting.com/knowledgebase/linux/misc/trapping-ctrl-c-in-bash
【讨论】:
你可以先trap ctrl+c by :
trap ctrl_c INT
此行将在按下 ctrl+c 后调用函数ctrl_c(停止执行脚本)。
然后创建一个函数ctrl_c 并删除要在该函数中删除的文件,如下所示:
function ctrl_c(){
rm -rf ~/PATH-OF-THE-FILE-TO-DELETE
}
【讨论】: