Genellikle watchher 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 watchbir dizi komutla kullanamıyorum :
$ watch ls -ltr|tail -n 1
Bunu yaparsam watch, gerçekten izliyor ls -ltrve tail -n 1hiç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 watchemirleri [onları bir betiğin içine koyanlar] borulu bir emir zinciri ile nasıl çalıştırabilirim ?
man watchve örneklere geç ...