gpt4 book ai didi

linux - 当信号设置为 "DEBUG"假信号时,为什么我的陷阱不起作用?

转载 作者:IT王子 更新时间:2023-10-29 00:58:33 24 4
gpt4 key购买 nike

#test code:

#!/bin/bash
#~/test/test.sh
trap "echo 'testmessage'" DEBUG

while :
do
echo abc
sleep 6
done

#run it
~/test$sh test.sh

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

#result
=> trap: DEBUG: bad trap

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

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

最佳答案

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

关于linux - 当信号设置为 "DEBUG"假信号时,为什么我的陷阱不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11280240/

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