Linux 为什么我的陷阱没有';当信号设置为“t”时,t工作;“调试”;假信号?

Linux 为什么我的陷阱没有';当信号设置为“t”时,t工作;“调试”;假信号?,linux,debugging,bash,shell,ubuntu,Linux,Debugging,Bash,Shell,Ubuntu,============================== #run it ~/test$sh test.sh ============================== #run it ~/test$sh test.sh ?[shell debug]为什么我的陷阱在信号设置为“debug”伪信号时不工作,但报告陷阱错误?错误消息“bad trap”是由ash而不是bash生成的。当您运行sh test.sh时,shebang行是不相关的,因为您没有执行脚本,您正在执行名为“sh”的程序

==============================

#run it
~/test$sh test.sh
==============================

#run it
~/test$sh test.sh

?[shell debug]为什么我的陷阱在信号设置为“debug”伪信号时不工作,但报告陷阱错误?

错误消息“bad trap”是由ash而不是bash生成的。当您运行
sh test.sh
时,shebang行是不相关的,因为您没有执行脚本,您正在执行名为“sh”的程序,并将“test.sh”作为参数。sh程序(在您的例子中,我打赌是ash或dash的符号链接)会尽最大努力运行参数中指定的脚本。如果您运行命令
/test.sh
(首先需要+x权限),shebang行将发挥作用。

它对我有效。什么版本的Bash?你确定你在使用Bash吗?Shebang需要在脚本的第一行。您的提示似乎暗示您正在使用非bash sh。
DEBUG
trap即使在bash POSIX模式下也能工作(当然,不应该在那里使用)。
#result
=>   trap: DEBUG: bad trap