gpt4 book ai didi

linux - 在 bash 中捕获键盘中断

转载 作者:可可西里 更新时间:2023-11-01 11:49:29 31 4
gpt4 key购买 nike

我在 bash 中有一个函数可以捕获键盘中断。该函数如下所示:

user_interrupt(){
echo -e "\n\nKeyboard Interrupt detected."
sleep 2
echo -e "\n Cleaning up..."
rm -rf /usr/local/src/mysources
}

现在,在同一个脚本中,我有另一个名为 install() 的函数,它使用标准 ./configure 从源代码一个接一个地安装一些包, makemake install 过程。这个想法是在依次运行 3 个安装时捕获用户中断。问题是,我应该在哪里放置以下语句:

trap user_interrupt SIGINT
trap user_interrupt SIGTSTP

那么我应该把它作为 install() 函数中的第一条语句吗?还是我需要 if-else 条件?

最佳答案

我猜你想在检测到用户中断后退出(当然是在清理操作完成之后)。如果是这样,您需要在函数的 rm -rf ... 行之后说 exit。除非您这样做,否则 trap 会捕获一个信号 SIGINT,例如,在您的 user_interrupt 函数中执行任务,脚本将继续执行。

要回答另一个问题,只需定义您在脚本顶部提到的函数,然后是两个 trap 命令,然后是剩余的代码(install() 函数等)。 trap 会捕获提到的信号,您不需要对此进行任何显式处理。

关于linux - 在 bash 中捕获键盘中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18913235/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com