我必须在同一个终端窗口中监视两个命令。我的意思是
watch du -h filename.txt && df -h
但它只显示一个输出。
所以我在想可能无法使用 watch 在同一个窗口上运行多个命令。
如果有任何办法,请告诉我。
谢谢。
答案1
您可以引用以下命令:
watch "du -h filename.txt && df -h"
他们将一起被处决。
答案2
如果您想确保两个命令都执行,其中一种方法是用;
而不是 来分隔它们&&
。
watch 'du -h filename.txt; df -h'
&&
&&
仅当第一个命令执行成功(退出状态)时才允许执行第二个命令(第二个操作数,位于 的右侧) 0
。如果这是预期行为,请使用&&
。
答案3
为了完整起见......
watch 'du -h filename.txt || true && df -h'
'|| true' 部分使第一个命令即使因某种原因失败也会被评估为 true。这将允许 && 之后的下一个命令执行,无论第一个命令的输出如何。这对于该场景来说很可能是不必要的,只是表明它是可能的。
答案4
要同时运行多个命令,请&
在命令之间使用单个运算符。例如:
dothis & dothat
为了消除任何困惑,以下是不同运算符的工作方式:
c1 & c2 # Run both commands parallelly
c1 ; c2 # Run both commands one by one
c1 && c2 # Run c2 only if c1 exits successfully
c1 || c2 # Run c2 only if c1 fails