Ixa*_*zis 7 error-handling shell signals shell-trap
我有一个简单的脚本
trap 'echo exit' EXIT
while true; do sleep 1; done
Run Code Online (Sandbox Code Playgroud)
并且它在不同的shell中表现不同:
$ bash tst.sh
^Cexit
$ dash tst.sh
^C
$ zsh tst.sh
^C
$ sh tst.sh
^Cexit
Run Code Online (Sandbox Code Playgroud)
所以我不确定它应该如何操作以及它是否被指定.
EXITtrap 在每个 shell 中的工作方式不同。几个例子:
exit.我建议您实际捕获信号然后退出,它应该可以在大多数 shell 中移植:
$ cat trap
trap 'echo exit; exit' INT TERM # and other signals
while true; do sleep 1; done
$ bash trap
^Cexit
$ dash trap
^Cexit
$ zsh trap
^Cexit
$ ksh trap
^Cexit
$ mksh trap
^Cexit
$ busybox sh trap
^Cexit
Run Code Online (Sandbox Code Playgroud)