如何在 fish shell 退出时将函数设置为 运行?
How do I set a function to run on exit in fish shell?
我想在我的 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。
尚无法在 non-interactive 脚本中捕获 control-C (SIGINT)。这是一个已知的限制。参见 https://github.com/fish-shell/fish-shell/issues/6649
我想在我的 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。
尚无法在 non-interactive 脚本中捕获 control-C (SIGINT)。这是一个已知的限制。参见 https://github.com/fish-shell/fish-shell/issues/6649