在捕获中断后如何使Bash的读取中止?
发布时间:2020-12-16 01:14:37 所属栏目:安全 来源:网络整理
导读:考虑: $cat b.sh#!/bin/bashtrap 'echo $$was interrupted' INTread fooecho done$./b.sh^C27104 was interrupted^C27104 was interrupted^C27104 was interrupteddone$ (ctrl-c被击中3次,然后是ctrl-d) 我希望执行陷阱后读取中止.是否有一种干净的方法来实
考虑:
$cat b.sh #!/bin/bash trap 'echo $$was interrupted' INT read foo echo done $./b.sh ^C27104 was interrupted ^C27104 was interrupted ^C27104 was interrupted done $ (ctrl-c被击中3次,然后是ctrl-d) 我希望执行陷阱后读取中止.是否有一种干净的方法来实现这一目标?
似乎没有立即中断是Bash非POSIX扩展(请参阅Bash内置源的read.def中的read_builtin(查找posixly_correct)).
您可以覆盖此行为,并通过强制读取POSIX行为(通过设置POSIXLY_CORRECT环境变量)退出第一个Ctrl C: #!/bin/bash trap 'echo $$was interrupted' INT POSIXLY_CORRECT=1 read foo echo done (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |