Saya biasanya pengguna watch
utilitas linux untuk menonton output dari suatu perintah berulang kali setiap n detik, seperti diwatch df -h /some_volume/
Tapi sepertinya saya tidak bisa menggunakan watch
dengan serangkaian perintah pipa seperti:
$ watch ls -ltr|tail -n 1
Jika saya melakukan itu, saya watch
benar-benar menonton ls -ltr
dan output sedang diteruskan tail -n 1
yang tidak menghasilkan apa-apa.
Jika saya coba ini:
$ watch (ls -ltr|tail -n 1)
saya mendapat
$ watch: syntax error near unexpected token `ls'
Dan salah satu dari yang berikut ini gagal karena beberapa alasan:
$ watch <(ls -ltr|tail -n 1)
$ watch < <(ls -ltr|tail -n 1)
$ watch $(ls -ltr|tail -n 1)
$ watch `ls -ltr|tail -n 1)`
Dan akhirnya jika melakukan ini:
$ watch echo $(ls -ltr|tail -n 1)
Saya melihat tidak ada perubahan dalam output pada interval yang diberikan karena perintah di dalam $()
dijalankan hanya sekali dan string output yang dihasilkan selalu dicetak ("diawasi") sebagai literal.
Jadi, bagaimana cara membuat watch
perintah bekerja dengan rantai perintah pipa [selain yang menempatkannya di dalam skrip]?
man watch
dan gulir ke bawah ke contoh ...