bash – 陷阱触发后退出

前端之家收集整理的这篇文章主要介绍了bash – 陷阱触发后退出前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
拿这个脚本
#!/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年内不会改变…

猜你在找的Bash相关文章