Linux Bash:异步处理信号(无后台任务)

Linux Bash:异步处理信号(无后台任务),linux,bash,signals,Linux,Bash,Signals,可以在Bash中异步处理信号吗 我知道trap命令。它的工作方式是在处理信号之前等待当前命令完成。在信号到达时处理信号的唯一方法是在后台运行当前命令 假设我们无法在后台运行命令(例如,因为我们希望能够通过stdin进行键盘输入),是否有方法处理发送到脚本的信号 如果脚本不在前台,则无法同步处理信号。在这方面,问题很清楚: 如果bash正在等待命令完成并接收到已设置陷阱的信号,则在命令完成之前不会执行陷阱 根据实际情况,可以通过将信号发送到后台子进程,或者将脚本保留在前台并将输入路由到命令来解决此

可以在Bash中异步处理信号吗

我知道
trap
命令。它的工作方式是在处理信号之前等待当前命令完成。在信号到达时处理信号的唯一方法是在后台运行当前命令


假设我们无法在后台运行命令(例如,因为我们希望能够通过stdin进行键盘输入),是否有方法处理发送到脚本的信号

如果脚本不在前台,则无法同步处理信号。在这方面,问题很清楚:

如果bash正在等待命令完成并接收到已设置陷阱的信号,则在命令完成之前不会执行陷阱

根据实际情况,可以通过将信号发送到后台子进程,或者将脚本保留在前台并将输入路由到命令来解决此问题。两者都很做作