使用 watch run 2 命令

rɑː*_*dʒɑ 60 command-line bash watch-command

我必须在同一个终端窗口中观看两个命令。我的意思是像

watch du -h filename.txt && df -h
Run Code Online (Sandbox Code Playgroud)

但它只显示一个输出。

所以我在想的是可能无法使用 watch 在同一个窗口上运行多个命令。

如果有任何方法,请告诉我。

谢谢你。

Oli*_*Oli 98

您可以引用命令:

watch "du -h filename.txt && df -h"
Run Code Online (Sandbox Code Playgroud)

他们将一起被处决。

  • 请注意这是有效的,因为这些示例命令返回 _true_。如果第一个命令返回 _false_,则不会执行第二个命令(因为“布尔评估快捷方式”) (4认同)
  • FTR,我的命令使用`&&`,因为OP 使用`&&`。命令的组合及其链接是答案的附带条件。 (3认同)

小智 23

如果要确保两个命令都执行,其中一种方法是用;而不是&&.

watch 'du -h filename.txt; df -h'
Run Code Online (Sandbox Code Playgroud)

&&&&仅当第一个命令成功执行(退出状态0)时,才允许执行第二个命令(第二个操作数,右侧)。如果这是预期行为,请使用&&.

  • 这种分号形式对我来说似乎是对原始问题的最佳答案。如果要“运行两个命令”,请使用分号!如果您想“运行一个命令,然后再运行另一个”,请使用 && .... (3认同)

Geo*_*rey 7

为了完整起见...

 watch 'du -h filename.txt || true && df -h'
Run Code Online (Sandbox Code Playgroud)

'|| true' 部分会导致第一个命令评估为 true,即使它由于某种原因失败。这将允许执行 && 之后的下一个命令,无论第一个命令的输出如何。这对于该场景来说很可能是不必要的,只是表明它是可能的。