gpt4 book ai didi

linux - bash 执行整个脚本,但如果任何中间作业失败则返回退出代码 > 0

转载 作者:可可西里 更新时间:2023-11-01 11:48:39 25 4
gpt4 key购买 nike

我有一个 bash 脚本 script.sh 如下:

./step1.sh
./step2.sh
./step3.sh

无论是否失败,每个 step*.h 脚本都会返回正确的错误代码。

现在,如果 step3.sh 失败,我会得到一个适当的退出代码,但如果 step1.sh 或 step2.sh 失败而 step3.sh 成功,我会得到 status = 0,这并不理想。

我知道我可以用

set -e

如果任何中间步骤失败,在我的脚本顶部使脚本失败,但这不是我想要的。

我想知道是否有一个简单的选项可用于执行每个中间脚本(即使其中一个失败)但返回退出代码 > 0 如果其中任何一个失败而不必跟踪每个手动退出代码。

最佳答案

您可以捕获错误:

#!/bin/bash

echo "test start."

trap 'rc=$?' ERR

./error.sh
./script2.sh

echo "test done."
return ${rc}

有关陷阱如何工作的更多信息,请参阅 trap .

关于linux - bash 执行整个脚本,但如果任何中间作业失败则返回退出代码 > 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39406998/

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