watch run 2コマンドを使用する


42

同じターミナルウィンドウで2つのコマンドを監視する必要があります。私は次のようなものを意味します

watch du -h filename.txt && df -h

ただし、表示される出力は1つだけです。

だから私が考えているのは、同じウィンドウで複数のコマンドを実行するために監視を使用することは不可能かもしれないということです。

方法があれば、教えてください。

ありがとうございました。

回答:


67

コマンドを引用できます:

watch "du -h filename.txt && df -h"

そして、それらは一緒に実行されます。


オリありがとう。実際にはオフィスのPCなので、実験を敢行することはありません。確実な解決策のためにここに投稿しました。ありがとうございました。
rɑːdʒɑ

ねえ、彼らは動作しますか?実行時に、私はいくつかの許可はエラー」:: `は/ usr /ラジャ/ hostctrl /新しい「アクセス許可が拒否されたDFを「拒否されたばかりだから
rɑːdʒɑ

それは別の問題のようです。あなたはそれが時計に包まれていなくてもその問題を見るでしょう。
オリ

3
これらの例のコマンドはtrueを返すため、これが機能することに注意してください。最初のコマンドがfalseを返した場合、2番目のコマンドは実行されません(ためboolean evaluation shortcut
空手犬

3
FTRは、&&OPがを使用するため、私のコマンドが使用します&&。コマンドとそれらのリンクの組み合わせは、答えに付随しています。
オリ

19

両方のコマンドを確実に実行したい場合、方法の1つはの;代わりにで区切ることです&&

watch 'du -h filename.txt; df -h'

&&&&最初のコマンドが正常に実行された場合のみ(出口ステータス0)、2番目のコマンド(2番目のオペランド、右側)の実行を許可します。これが意図した動作である場合、に進み&&ます。


1
このセミコロン形式は、元の質問への答えとして私に最適と思われます。「2つのコマンドを実行する」場合は、セミコロンを使用してください!あなたは、「一つのコマンドを実行し、その後、多分別の」使用&& ....にしたい場合
JeremyDouglass

3

完全を期すために...

 watch 'du -h filename.txt || true && df -h'

'|| true '部分により、何らかの理由で失敗した場合でも最初のコマンドがtrueと評価されます。これにより、最初の出力に関係なく、&&の後の次のコマンドを実行できます。これは、シナリオでは不要である可能性が高く、可能性を示しています。


-1

複数のコマンドを同時に実行するに&は、コマンド間で単一の演算子を使用します。好む:

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

c1とc2は両方のコマンドを並行して実行しません。c1が正常に実行されると、c2のみが実行されます。
rɑːdʒɑ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.