Bash-如果任何进程被终止,则退出而不进入下一步

Bash-如果任何进程被终止,则退出而不进入下一步,bash,Bash,我有这样一个bash文件 ./process1 ./process2 ./process3 ./process4 ./process5 假设我运行了这个bash脚本,process2由于某种原因被终止。不经过process3,我直接想退出。我该怎么办 谢谢,您可以这样尝试: ./process1 && ./process2 && ./process3 && ./process4 && ./process5 您可以这样尝试: ./

我有这样一个bash文件

./process1
./process2
./process3
./process4
./process5
假设我运行了这个bash脚本,
process2
由于某种原因被终止。不经过
process3
,我直接想退出。我该怎么办

谢谢,

您可以这样尝试:

./process1 && ./process2 && ./process3 && ./process4 && ./process5
您可以这样尝试:

./process1 && ./process2 && ./process3 && ./process4 && ./process5
如果非零退出代码为:

./process1 || exit
等等

另一种方法是在
bash
中,使用
-e
标志:

#!/bin/bash
set -e
-e如果命令以非零状态退出,则立即退出

如果非零退出代码为:

./process1 || exit
等等

另一种方法是在
bash
中,使用
-e
标志:

#!/bin/bash
set -e
-e如果命令以非零状态退出,则立即退出


您还应该考虑<代码>是否使可能是一个更合适的工具。您还应该考虑<代码>是否使可能是一个更合适的工具。下投票:明确检查<代码> $?/Cuth>是初学者的反模式。shell的流控制构造都在幕后检查此变量;你几乎不需要直接看它。执行您所描述的操作的正确方法是简单地
/process1 | | exit
(这有一个额外的好处,即
process1
的退出代码会传播回调用方)。这一点在@tripleee上很好。谢谢,这很快。Downvote:显式检查
$?
是一种初级反模式。shell的流控制构造都在幕后检查此变量;你几乎不需要直接看它。执行您所描述的操作的正确方法是简单地
/process1 | | exit
(这有一个额外的好处,即
process1
的退出代码会传播回调用方)。这一点在@tripleee上很好。谢谢,这很快。删减投票。