Genellikle watch
her n saniyede bir komutun çıktısını izlemek için linux yardımcı programını kullanıyorum,watch df -h /some_volume/
Ancak aşağıdaki gibi watch
bir dizi komutla kullanamıyorum :
$ watch ls -ltr|tail -n 1
Bunu yaparsam watch
, gerçekten izliyor ls -ltr
ve tail -n 1
hiçbir şey çıkmayan çıktı iletiliyor.
Bunu denersem:
$ watch (ls -ltr|tail -n 1)
alırım
$ watch: syntax error near unexpected token `ls'
Ve aşağıdakilerden herhangi biri bir nedenden veya başka bir şeyden başarısız olur:
$ watch <(ls -ltr|tail -n 1)
$ watch < <(ls -ltr|tail -n 1)
$ watch $(ls -ltr|tail -n 1)
$ watch `ls -ltr|tail -n 1)`
Ve sonunda bunu yaparsanız:
$ watch echo $(ls -ltr|tail -n 1)
Verilen aralıkta çıktıda bir değişiklik göremiyorum çünkü içerdeki komut $()
sadece bir kez çalıştırılıyor ve elde edilen çıktı dizgisi her zaman değişmez olarak basılıyor ("izleniyor").
Öyleyse watch
emirleri [onları bir betiğin içine koyanlar] borulu bir emir zinciri ile nasıl çalıştırabilirim ?
man watch
ve örneklere geç ...