如何在shell脚本中实现事件处理?
在我的 shell 脚本中,我删除了脚本末尾的文件。即使脚本被(ctrl c 或 ctrl z)停止,我也需要将其删除。有什么方法可以读取该文件并删除该文件吗?
提前致谢
In my shell script, im deleting a file at the end of script. And i need it to be deleted even if the script was stopped by (ctrl c or ctrl z)..Is there any way to read that and delete the file?
Thanks in advance
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
就像 @pgl 所说,
trap
就是你想要的。语法是:trap<事件> [event...]
操作是唯一的一个参数,但它可以运行多个命令。该事件可以是
exit
(当您手动调用exit
时),也可以是由其“短”名称表示的信号,即不带SIG
前缀(例如例如,INT
表示SIGINT
示例:
trap "rm -f myfile" INT exit
您可以在整个脚本中更改陷阱。当然,您可以在操作中使用变量插值。
Like @pgl said,
trap
is what you want. The syntax is:trap <actionhere> <event> [event...]
The action is one and only one argument, but it can run several commands. The event is either
exit
(when you callexit
manually) or a signal by its "short" name, ie without theSIG
prefix (for instance,INT
forSIGINT
.Example:
trap "rm -f myfile" INT exit
You can change the trap all along the script. And of course, you can use variable interpolation in your action.
您可以使用内置的
trap
捕获 ctrl+c。尝试以下方法开始:You can catch ctrl+c's with the
trap
builtin. Try this to get started: