bash - 如何在 bash 中捕获信号后打印消息并继续?

标签 bash signals bash-trap

我想在 bash 中执行此操作:

trap "echo Don\'t do that!" 2 3

效果很好,只是我希望脚本继续。我怎样才能做到这一点?如果我将命令保留为空白字符串,脚本将继续,但不会打印任何内容。我可以同时打印消息和继续吗?

最佳答案

使用此脚本:

#!/bin/bash
trap 'echo "Whee!"' 3 2

echo "Setting up.."
sleep 5
echo "Done."

我得到这个输出:

Setting up..
^CWhee!
Done.

..当我在 sleep 命令期间发送 ^C 时。中断发送; bash 捕获它并继续,但中断由 sleep 正确处理。这不是你想要的吗?

关于bash - 如何在 bash 中捕获信号后打印消息并继续?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21193993/

相关文章:

linux - While 循环在 1 次迭代后停止 [BASH]

c - 在多线程程序中处理异步信号

bash - 疏水阀在管道输送时是否按预期工作?

linux - 如何仅在 bash 中捕获导出 1

&& 的 Linux 陷阱最佳实践

linux - 如何获取特定目录的完整路径?

linux - 如何在 Linux 中添加一个可以被其他进程使用的环境变量?

python - pygsheets 上次访问或上次修改时间戳

Qt 信号继承?

linux - 通过启动器从 bash 脚本调用时保持 'vlc -I dummy' 运行