前端之家收集整理的这篇文章主要介绍了
bash – 陷阱触发后退出,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
拿这个脚本
@H_
301_1@#!/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,所以你可以说
@H_
301_1@#!/bin/sh
fd () {
echo Hello world
# No explicit exit here!
}
trap fd EXIT
trap 'exit 127' INT
我记得从其他人的脚本中学习了,经过几年的努力,遇到了各种各样的解决方法.之后,我注意到有些教程解释了这个技巧.但是,在例如Bash手册页面IMHO. (或者这不是我需要的时候,也许有些事情在15年内不会改变…