gpt4 book ai didi

shell - gitlab-ci中的脚本不输出错误

转载 作者:行者123 更新时间:2023-12-02 22:58:51 26 4
gpt4 key购买 nike

我有一个在 gitlab CI 上使用的 shell 脚本,它运行提供的命令。问题是如果命令失败它不会显示错误,它只是显示ERROR: Job failed: exit code 1。我在本地尝试了该脚本,它能够输出失败的命令,有没有办法可以强制它在退出作业之前通过我的脚本显示错误?

我的脚本的特定部分

output="$( (cd "$FOLDER"; eval "$@") 2>&1 )"
if [ "$output" ]; then
echo -e "$output\n"
fi

最佳答案

捕获适用于每个 shell 的错误的一种方法是将两个命令与逻辑 OR || 结合起来。

从子 shell 捕获错误:

output="$( (cd "$FOLDER"; eval "$@") 2>&1 )" || errorcode="$?"

如果失败,将保存上一个命令的错误代码。

如果重要命令失败,则退出并显示自己的错误代码

output="$( (cd "$FOLDER"; eval "$@") 2>&1 )" || exit 12

对于更复杂的事情,我们可以定义一个将在 OR 之后调用的函数。

handle_error() {
# do stuff
}

output="$( (cd "$FOLDER"; eval "$@") 2>&1 )" || handle_error

关于shell - gitlab-ci中的脚本不输出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48419152/

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