我需要编写一个陷阱来跟踪进程何时退出(以及其他事情)并删除一个临时文件。为了获得更好的代码可读性,我更愿意使用sigspec而不是数字,相关的代码片段是
trap 'rm "$temp"' 0 SIGHUP SIGTERM
0的σ规范应该是exit、EXIT还是SIGEXIT?
发布于 2020-09-11 11:31:24
POSIX规范上的外壳命令语言,陷阱读取
条件可以是EXIT,0(等效于EXIT),也可以是使用符号名称指定的信号,而不使用SIG前缀,如在XBD标头中定义的标头中的信号名称表中列出的那样;例如,HUP、INT、of、TERM。实现可以允许具有SIG前缀的名称或忽略作为扩展的信号名称中的大小写。为SIGKILL或SIGSTOP设置陷阱会产生未定义的结果。
Bash允许单曲以SIG为前缀,
信号名称不区分大小写,SIG前缀是可选的。如果sigspec为EXIT (0),则在从shell退出时执行命令arg。
但是,由于退出不是信号(请参阅man 7 signal或),所以即使在Bash中也不能使用SIGEXIT。
https://unix.stackexchange.com/questions/608956
复制相似问题