events - 如何在 Fish shell 中设置退出时运行的函数?

标签 events exit fish

我想在 shell 脚本退出之前进行一些清理,包括使用 Ctrl-C 取消它时。

我尝试了这段代码(在 script.fish 文件中):

function exit_handler --on-event fish_exit
    echo exiting!
end

sleep 5 &
sleep 4 &
wait

如果我让此代码正常运行,exit_handler 函数将按预期调用,但如果我使用 Ctrl-C 中断它,则不会打印 exiting! 。即使脚本中止,是否有某种方法可以始终运行事件处理程序?

我在 macOS 12.3 上使用 Fish 3.4.0。

最佳答案

目前还无法在非交互式脚本中捕获 control-C (SIGINT)。这是一个已知的限制。请参阅https://github.com/fish-shell/fish-shell/issues/6649

关于events - 如何在 Fish shell 中设置退出时运行的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71541627/

相关文章:

javascript - Jquery 手机 : Select menus events

.net - .NET 中哪种退出方法最好用?

bash - 使用 && 和 || 时无法停止 BASH运营商

dictionary - fish shell ---如何模拟或实现哈希表,关联数组或键值存储

webstorm - 如何从终端打开 WebStorm?

javascript - 捕获 "scroll down"事件?

cocoa - 如何跟踪 NSWindow 的打开和关闭事件?

javascript - FramerJS 中从未触发 `Event.ImageLoaded` 事件?

javascript - 检查用户在 JQuery 中是否有未保存的数据?

fish - 使用子命令创建自动完成脚本