加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash – 陷阱触发后退出

发布时间:2020-12-16 01:24:31 所属栏目:安全 来源:网络整理
导读:拿这个脚本 #!/bin/shfd (){ echo Hello world exit}trap fd EXIT INTfor g in {1..5}do echo foo sleep 1done 我想要fd从Control-C或脚本正常退出一次.但是如果你打Control-C,它将运行两次.如何解决这个问题? 做级联陷阱出口127将运行EXIT陷阱并将退出代码
拿这个脚本
#!/bin/sh

fd ()
{
  echo Hello world
  exit
}

trap fd EXIT INT

for g in {1..5}
do
  echo foo
  sleep 1
done

我想要fd从Control-C或脚本正常退出一次.但是如果你打Control-C,它将运行两次.如何解决这个问题?

做级联陷阱出口127将运行EXIT陷阱并将退出代码设置为127,所以你可以说
#!/bin/sh

fd () {
  echo Hello world
  # No explicit exit here!
}

trap fd EXIT
trap 'exit 127' INT

我记得从其他人的脚本中学习了,经过几年的努力,遇到了各种各样的解决方法.之后,我注意到有些教程解释了这个技巧.但是,在例如Bash手册页面IMHO. (或者这不是我需要的时候,也许有些事情在15年内不会改变…

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读