gpt4 book ai didi

linux - 如何仅在 bash 中捕获导出 1

转载 作者:行者123 更新时间:2023-12-05 00:55:04 27 4
gpt4 key购买 nike

我有以下 bash 脚本:

#!/bin/bash


function hello {
echo "Hello World!"
}

trap hello EXIT

问题是该函数将在该脚本的任何退出代码上执行。如果我在脚本末尾附加 exit 1Hello World! 将被打印,但它也会在 exit 0 上打印。

有没有办法在脚本中运行函数,但前提是脚本仅以退出代码 1 退出? (实际上除了 0 以外的任何东西也可以。)

最佳答案

在函数中捕获当前状态:

bye() {
local status=$?
(( status == 1 )) && echo "Hello World!"
echo "Exiting with status $status"
exit $status
}
trap bye EXIT
# ...
exit $some_status

关于linux - 如何仅在 bash 中捕获导出 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65420781/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com