watch run 2 komutlarını kullanarak


41

Aynı terminal penceresinden iki komutu izlemem gerekiyor. Gibi bir şey demek

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

Ancak bunun yalnızca bir çıktı göstermesi.

Yani benim düşündüğüm şey, aynı pencerede birden fazla komut çalıştırmak için saati kullanmak mümkün olmayabilir.

Herhangi bir yolu varsa, lütfen bana bildirin.

Teşekkür ederim.

Yanıtlar:


66

Komutları alıntı yapabilirsiniz:

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

Ve birlikte idam edilecekler.


Sağol Oli. aslında ofis bilgisayarı bu yüzden deney yapmaya cesaret edemiyor. bu yüzden kesin çözüm için burada yayınlanmıştır. Teşekkür ederim.
rʒɑdʒɑ

Hey, işe yarayacaklarından emin misin? çünkü yürütürken bazı izinler alınıyorum "df:` / usr / raja / hostctrl / new ': "Reddedildi"
Permdʒɑ

Bu ayrı bir sorun gibi görünüyor. Bu konuyu gözetlenmeden bile görürsün.
Oli

3
Bunun çalıştığını unutmayın, çünkü bu örnek komutlar true ile döner . İlk komut yanlışboolean evaluation shortcut
dönerse

3
FTR, komutum &&OP kullandığı için kullanıyor &&. Komutların ve bağlantılarının birleşimi cevabın eseridir.
Oli

19

Emin hem komutlar çalıştırmak olmak için, yollarından biri onları ayırmaktır ;yerine &&.

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

&&İkinci komutun çalıştırılmasını sağlar (ikinci işlenen, sağında &&), ancak ilk komut başarılı bir şekilde çalıştırılırsa (çıkış durumu 0). Bu amaçlanan davranış ise, devam edin &&.


1
Bu noktalı virgül biçiminde, orijinal sorunun cevabı olarak bana en iyisi gözüküyor. Eğer "iki komutu çalıştırmak" istiyorsanız, noktalı virgül kullanın! Eğer "bir komut çalıştır, sonra belki başka" komutunu kullanmak
istersen

3

Bütünlüğü aşkına ...

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

'|| true 'bölümü, bir nedenden dolayı başarısız olsa bile ilk komutun doğru olarak değerlendirilmesine neden olur. Bu, && sonrası bir sonraki komutun ilk çıktısı ne olursa olsun yürütülmesine izin verecektir. Bu, senaryo için büyük olasılıkla gereksiz, sadece mümkün olduğunu gösteriyor.


-1

Birden fazla komutun aynı anda çalışması &için, komutlar arasında tek bir operatör kullanın. Sevmek:

dothis & dothat

Herhangi bir karmaşayı gidermek için, işte farklı operatörler nasıl çalışıyor:

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 ve c2 her iki komutu paralel olarak çalıştırmaz, c1 başarılı çalıştırılırsa yalnızca c2 çalıştırılır.
rʒɑdʒɑ
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.