मैंने यह अच्छा सवाल देखा:
एक तर्क के रूप में पिछले कमांड के आउटपुट को पास करें
और जो मैं चाहता था उसे पाने की कोशिश की लेकिन किस्मत नहीं।
मैं अक्सर अपनी मैक्सिमा / लिस्प प्रक्रिया को देखना चाहता हूं और शीर्ष / htop / etc चलाने के बजाय मैंने सोचा कि मैं बस "maxima.core" खोज सकता हूं और शीर्ष पर "-p" ध्वज के इनपुट के रूप में उस खोज से लौटे पीआईडी का उपयोग कर सकता हूं । यदि यह एक से अधिक रिटर्न देता है, तो यह एक सौदे का इतना बड़ा नहीं है।
1.) अगर मुझे पीआईडी पता है, तो मैं इसका उपयोग कर सकता हूं:
top -p 10815 -o S -d 0
2.) पीआईडी पाने के लिए मैं ऐसा करता हूं:
ps -fu <user> | pgrep -f maxima.core
जो सूची की तरह आउटपुट देता है,
10814
11989
लेकिन उन्हें समेटने की कोशिश मेरे लिए विफल है। मेरी कोशिश ज्यादातर इसी के आसपास केंद्रित है:
<user>@<user> ~ $ top -o S -d 0 -p $(ps -fu <user> | pgrep -f maxima.core)
इसके परिणामों को भी शामिल करने की कोशिश की गई: मैं दो या दो से शुरू होने वाले सामान्य मापदंडों को कैसे प्राप्त कर सकता हूं, आमतौर पर `n`?
top -o S -d 0 -p "${(ps -fu <user> | pgrep -f maxima.core)[@]}"
लेकिन इसने खराब प्रतिस्थापन की शिकायत की।
मैं बैश पर बहुत भरोसा करता हूं।
top -o S -d 0 -p "$(pgrep -d, -u <user> -f maxima.core)"
क्या यह चाल है?
pgrep
समर्थन का संस्करण-d
(--delimiter
) विकल्प है? BTW मैं पाइपिंग शकps -fu <user>
मेंpgrep
कुछ भी कर रही है - आप शायद pgrep के स्वयं के उपयोग करना चाहिए-f
और-u
विकल्प