मैं आम तौर पर watch
हर n सेकंड में बार-बार एक कमांड के आउटपुट को देखने के लिए उपयोगकर्ता लिनक्स उपयोगिता, जैसेwatch df -h /some_volume/
लेकिन मुझे लगता है कि watch
कमांड की एक पाइप श्रृंखला के साथ उपयोग करने में सक्षम नहीं होना चाहिए :
$ watch ls -ltr|tail -n 1
अगर मैं ऐसा करता हूं, watch
तो वास्तव में देख रहा हूं ls -ltr
और आउटपुट को पारित किया जा रहा है tail -n 1
जो कुछ भी आउटपुट नहीं करता है।
अगर मैं यह कोशिश करूँ:
$ watch (ls -ltr|tail -n 1)
मुझे मिला
$ watch: syntax error near unexpected token `ls'
और निम्न में से कोई भी किसी न किसी कारण से विफल होता है:
$ watch <(ls -ltr|tail -n 1)
$ watch < <(ls -ltr|tail -n 1)
$ watch $(ls -ltr|tail -n 1)
$ watch `ls -ltr|tail -n 1)`
और अंत में अगर ऐसा करें:
$ watch echo $(ls -ltr|tail -n 1)
मुझे दिए गए अंतराल पर आउटपुट में कोई परिवर्तन नहीं दिखाई देता है क्योंकि अंदर कमांड $()
केवल एक बार चलाया जाता है और परिणामस्वरूप आउटपुट स्ट्रिंग को हमेशा एक शाब्दिक के रूप में ("देखा") मुद्रित किया जाता है।
तो, मैं watch
कमांड को पाइपों की श्रृंखला के साथ कमांड कैसे बना सकता हूं [अन्य जो उन्हें स्क्रिप्ट के अंदर डालते हैं]?
man watch
और उदाहरण के लिए नीचे स्क्रॉल करें ...