考虑以下shell函数:
f() {
echo "function"
trap 'echo trap; sleep 1' EXIT
}
在bash下将打印以下内容:
~$ f
function
~$ exit
trap
在zsh上,这是结果:
~$ f
function
trap
~$ exit
如zshbuiltins man page中所述:
我的问题:有没有办法设置仅在bash和zsh中的 shell导出上执行的
EXIT
陷阱? 最佳答案
强制性的无聊而无趣的答案:
f() {
if [ "$ZSH_VERSION" ]
then
zshexit() { echo trap; sleep 1; } # zsh specific
else
trap 'echo trap; sleep 1' EXIT # POSIX
fi
}
关于bash - 如何在zsh和bash中的函数中设置shell导出陷阱,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22793713/