gpt4 book ai didi

bash - 为什么这个 bash 脚本不退出?

转载 作者:行者123 更新时间:2023-11-29 09:10:05 24 4
gpt4 key购买 nike

可能是一个基本问题,但我不确定为什么日志记录会导致此退出功能无法按预期工作:

#!/bin/bash

function exitFunct
{
exit 1
}

exitFunct 2>&1 | tee -a /var/tmp/output.txt
echo "You should never see this"

但输出是“你不应该看到这个”

最佳答案

正如 man bash 所解释的那样,

Each command in a pipeline is executed as a separate process (i.e., in a subshell).

因此,函数中的 exit 仅退出运行函数管道部分的子 shell。

还有,

The return status of a pipeline is the exit status of the last command, unless the pipefail option is enabled.

因此,您可以通过添加前缀来更改行为

set -eo pipefail

到脚本(-e 使您的脚本在出错时停止)。尽管如此,请注意使用 exit 0 不会结束它。

关于bash - 为什么这个 bash 脚本不退出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33882389/

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