मैं आम तौर पर 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और उदाहरण के लिए नीचे स्क्रॉल करें ...