如何在上一个命令完成后在 Linux 上运行命令

[ad_1]

本文介绍了如何在上一个命令运行完毕后运行命令。 使用它,您不仅可以运行 2 个命令,还可以在前一个命令完成后运行任意数量的命令。 这将适用于 Sh、Bash、Zsh 和其他 shell。

您可以在前一个命令完成后运行命令,具体取决于前一个命令的退出状态(是否失败)或不管这一点。 所以有3种可能的情况:

  • 如果上一个命令成功退出,则运行命令,
  • 如果前一个命令失败(如果它的退出状态不是 0),则运行命令,或者
  • 无论前一个命令的退出状态如何,都运行一个命令(失败与否无关紧要)

让我们来看看下面的每一个案例。

如何在 Linux 上每 X 秒重复一次命令

要仅在前一个命令成功退出的情况下连续运行多个命令(等待前一个命令完成),请使用 && 命令之间的运算符. 例如(您可以有任意数量的命令):

command1 && command2

如果您不关心前一个命令的退出状态,而只想在前一个命令完成后运行一个命令,请使用 ; 分隔器. 示例(您可以有任意数量的命令):

command1; command2; command3

如果你想在前一个命令完成运行后运行一个命令,但前提是前一个命令失败(如果它返回一个不是 0 的退出状态)。 在这种情况下,使用 || 分隔器. 例如(再一次,你可以有任意数量的命令):

command1 || command2

您可能还对以下内容感兴趣:如何使用 find 查找最近 N 天或最近 N 分钟内修改的文件

您也可以混合使用这些运算符。 在这种情况下,您可以使用以下命令对命令进行分组 {}. 为此,您需要确保添加分号 (;) 前 } 后面有一个空格 {. 例如:

command1 || { command2; command3; }

在这个例子中:

  • command1 并等待它完成
  • 如果 command1 失败,继续执行下一个命令(||):
    • command2 并等待它完成
    • 不管 command2的退出状态,运行 command3 (;)

另一个例子:

{ command1 && command2; }; { command3 && command4; }

在这个例子中:

  • command1 并等待它完成
  • 如果 command1 成功,运行 command2 并等待它完成(&&)
  • 不管是否 command2 成功与否,或者如果它甚至运行与否,运行 command3 并等待它完成( ; 在第一次之后 })
  • 如果 command3 成功,运行 command4 (&&)

提醒一下, ; 在每个之前 } 使用时需要 {},并且不影响命令的运行方式。

[[Edit]] 文章最初使用括号 (()) 用于混合经营者; 但与使用大括号 ({}),正如 Laurent 在下面的评论中指出的那样。 所以我更新了文章以使用 {} 为了这。

您可能会喜欢:如何在 Linux 中更改默认 Shell

[ad_2]

Related Posts