2012-07-13 14 views
26

processname नाम की प्रक्रिया का विस्तृत विवरण प्राप्त करने के लिए मैं आमतौर पर ps -elf | grep proceesname का उपयोग करता हूं। मुझे लगता है कि मुझे इसके लिए बहुत कुछ लिखना है।तर्क के साथ बैश उपनाम कैसे बनाएं?

अब मैं क्या सोच रहा था की तरह

alias lsps='ps -elf | grep $1' 

एक बैश अन्य नाम बनाना है जो केवल lsps processname का उपयोग करके ऊपर विस्तृत वर्णन दे देंगे।

तो, मेरा सवाल यह है कि मैं एक बैश उपनाम कैसे बना सकता हूं जो तर्क स्वीकार करता है।

पीएस: मुझे पता है कि मैं उपर्युक्त कार्य के लिए एक शेल स्क्रिप्ट लिख सकता हूं लेकिन मैं बस सोच रहा था कि बैश उपनाम के साथ इसे कैसे किया जाए।

+0

उपनाम केवल तर्क नहीं लेते हैं। – chepner

+0

जीएनयू 'पीएस' के लिए यह संभवतः 'lsps() {ps -lf -C "$ 1" कहने के लिए बेहतर है; } '। – Sorpigal

उत्तर

43

बहुत ही सरल;

alias lsps='ps -elf | grep' 

कमांड लाइन तर्क उर्फ ​​के अंत में स्वचालित रूप से जोड़ दिया जाएगा:

lsps arg1 arg2 arg3 => converted to => ps -elf | grep arg1 arg2 arg3 

यह केवल काम करता है जब आप उर्फ ​​के अंत तक तर्क जोड़ना चाहते हैं।

आप विस्तार कमांड लाइन आप कार्यों का उपयोग करना चाहिए के अंदर उर्फ ​​के तर्कों प्राप्त करना चाहते हैं:

उदाहरण के लिए:

lsps() 
{ 
    ps -elf | grep "$1" | grep -v grep 
} 

कार्य के साथ-साथ उपनाम आपके ~/.bashrc फ़ाइल में सहेजा जा सकता है) या एक फ़ाइल जो इसमें शामिल है):

$ cat /tmp/.bash_aliases 
lsps() 
{ 
    ps -elf | grep "$1" | grep -v grep 
} 

$ . /tmp/.bash_aliases 
$ 
+0

धन्यवाद यह काम किया। लेकिन अगर मुझे तर्क देना पड़ा तो क्या होगा। – RanRag

+2

बस उस मामले में फ़ंक्शन का उपयोग करें –

+0

यह अजीब बात है। हो सकता है कि आपने फ़ंक्शन नाम (इसकी परिभाषा में) के बाद अतिरिक्त रिक्त स्थान जोड़े हों। मैंने अपने उत्तर में उपयोग का उदाहरण जोड़ा, क्योंकि आप सभी कार्यों को सही देख सकते हैं। –

5

उपयोग करें:

alias lsps='ps -elf | grep' 

तो फिर तुम इस जारी कर सकते हैं:

lsps processname 
संबंधित मुद्दे