什么set -T
在bash 中意味着什么?它有什么作用?我相信它与Unix中的陷阱有关,但我不确定。
我发现了这个:
如果陷阱被无情地调用,许多这样的结构变得更加简单,而前景儿童仍在运行。您只需安装一个陷阱处理程序,它可以解决问题,并且每当您点击SIGINT(或SIGQUIT)时都会调用它。就像C程序中的信号处理程序被立即调用一样。也许我是一个C程序员,但我发现延迟的sh行为非常不直观。
#! /bin/sh onsig() { trap SIGINT kill -SIGINT $$ } set -T # set async execution of traps on FreeBSD trap onsig SIGINT ./some-blocking-program set +T # set traps execution behaviour back to normal
这使陷阱处理程序更复杂,但它允许您通常编写shell脚本的主要部分,而不记住程序可能会阻塞并采取相应的操作。
也许这个问题对你很感兴趣:stackoverflow.com/questions/6928946 / ...(关于errtrace)
—
hmontoliu 2011年