如何同时执行所有这两个功能(bash,管道)

How can do all these two functions at the same time (bash, pipe)

我正在尝试同时执行所有这两个功能,

xcodebuild || exit

并且,

xcodebuild | tee xcodebuild.log | xcpretty

在脚本文件中,

build.sh

现在我这样做了,但是最后一个命令 'exit' 不起作用。

xcodebuild | tee xcodebuild.log | xcpretty || exit

我期待命令'xcodebuild',不仅可以将日志打印到文件中,还可以在出错时'exit'我的脚本文件。

如果有人能给我一个正确方向的提示,我将不胜感激。

已更新 对我有用:

xcodebuild | tee xcodebuild.log | xcpretty
if [ "${PIPESTATUS[0]}" != "0" ]; then
   exit 1
fi

如果我理解你的要求正确,你可以将一个发送到后台以将其 运行 保存在那里的子外壳中,并将另一个保持在前台(根据我们的需要你可以发送这个背景):

{ xcodebuild || exit ;} & xcodebuild | tee xcodebuild.log | xcpretty

或者您可以使用像 GNU 这样的真正的多处理工具 parallel

| - 是管道,所以 LHS 的输出成为 RHS 的输入(LHS= 符号的左侧)

; - 下一个命令将 运行 而不管前一个命令的退出状态

&& - 表示 RHS 命令只有在 LHS 的退出状态为 0 时才会执行,这意味着成功

|| - 与正上方相反

以上都是串口命令

Paralell 运行 是用 mpi 完成的,或者至少是线程

exit 没有退出,因为 xcpretty 正在返回成功,即使您想将条件挂起到 xcodebuild