101得票23回答
同一信号的多个Bash陷阱

在Bash中使用trap命令时,先前为给定信号设置的trap将被替换。 是否有一种方法可以使多个trap在相同的信号下同时触发?

72得票4回答
如何在Bash脚本中捕获退出代码

我在Bash代码中有很多退出点。 我需要在退出时进行一些清理工作,因此我使用trap添加了一个回调函数来处理退出,像这样:trap "mycleanup" EXIT 问题在于有不同的退出代码,我需要进行相应的清理工作。我能在mycleanup()中获取退出代码吗?

40得票2回答
在bash中,是否可能检测到哪个陷阱信号?

可能有重复: 如何在bash shell脚本中识别接收到的信号名称? 当使用类似于 trap func_trap INT TERM EXIT 的内容时:func_trap () { ...some commands... } 在函数块中是否有一种方法可以检测调用它的陷...

27得票2回答
当执行另一个二进制文件时,如何实现Bash EXIT陷阱?

我想使用bash的EXIT陷阱并使用exec避免生成新进程。这可行吗? 也就是说,#!/bin/bash touch $0.$$ trap "rm -v $0.$$" EXIT /bin/echo Hello 使用Bash的EXIT陷阱删除临时文件$0.$$#!/bin/bash touch...

26得票6回答
如何在GNU make中捕获错误和中断?

我想知道是否有一种方法在GNU make中实现trap,类似于内置于BASH中的功能? 如果用户按下CTRL-C,或者make本身失败(非零退出),我想调用特定的目标或宏。

21得票1回答
保存和恢复陷阱状态?管理多个陷阱处理程序的简单方法?

什么是一个好的方法来覆盖 bash trap 处理程序,它不会永久地破坏可能已经设置的现有处理程序?如何动态管理任意链式 trap 程序? 是否有一种方法可以保存当前 trap 处理程序的状态,以便稍后可以恢复它们?

21得票4回答
如何通过多个脚本传播信号?

我有一组由一个主脚本控制的脚本集合。我想在主脚本中捕获 ctrl+c 信号,并将其传递给其他脚本。其他脚本也应该能够捕获来自主脚本的此信号并进行一些清理...... 我已经试过向子进程发送 kill -s SIGINT,但它们似乎无法捕获到该信号(即使在子脚本中定义了 trap 'Clean...

18得票3回答
通过传递参数来陷阱函数?

我已经到处搜索了,但我相信除了使用全局变量之外,没有别的方法可以做到这一点,但我相信stackoverflow.com上的大师们可能能够帮助我: 在bash中,有没有办法通过向函数传递参数来陷阱(trap)函数? 例如:trap <function_name> <arg_1...

16得票2回答
无法在后台shell中捕获SIGINT信号

当我在子进程/后台进程中运行时,无法捕获信号。 这是我的简单Bash脚本:#!/bin/bash echo "in child" trap "got_signal" SIGINT function got_signal { echo &quot...

15得票2回答
为什么我不能在后台shell中设置SIGINT陷阱?

这是一个简单的程序注册了两个trap处理程序,然后使用trap -p显示它们。接着,它以相同的方式在一个子后台进程中运行。 为什么后台进程忽略了SIGINT陷阱呢?#!/bin/bash echo "Traps on startup:" trap -p echo "" trap 'ech...