कैसे उपयोग करें - उर्फ ​​के रूप में?


11

जब मैं 11.3 का उपयोग कर रहा था, यह पहले से ही स्थापित कई उपनामों के साथ आया था। दो कि मैं एक बहुत करते थे +के लिए pushd .और -के लिए popd। अब डेबियन पर, मैं यह पता नहीं लगा सकता कि दूसरे को कैसे बनाया जाए। उपनाम के लिए एक कमांड विकल्प के रूप में alias -=popdपढ़ने की कोशिश करता है -=। मैंने इसके चारों ओर उद्धरण (सिंगल और डबल दोनों) डालने की कोशिश की है, और इसे बैकस्लैश के साथ पूर्ववर्ती कर रहा हूं, लेकिन मैं सिर्फ त्रुटि संदेश प्राप्त कर रहा हूं। कोई सुझाव?

धन्यवाद

जवाबों:


12

इसे इस्तेमाल करे:

alias -- -=popd

कम से कम मेरे लिए काम किया:

usr@srv % alias -- -=echo
usr@srv % - test
test

धन्यवाद, पूरी तरह से काम करता है। क्या करता --है, बिल्कुल?
वुल्फ

4
@Wolf: अधिकांश आदेशों के लिए, --विकल्पों के अंत को चिह्नित करता है; सब कुछ के बाद यह तर्क है। उदाहरण के लिए, logger foo -x bar"फू बार" में प्रवेश -xकरेंगे और एक विकल्प के रूप में व्यवहार करेंगे, जबकि logger -- foo -x barइसे "फू-एक्स बार" संदेश में एक साधारण शब्द के रूप में माना जाएगा।
user1686

1
--इंगित करता है कि कोई और अधिक विकल्प कमांड लाइन पर का पालन करें, तो निम्न -के विकल्प के रूप में व्याख्या नहीं कर रहे हैं। तो यह करने की अनुमति देता catफ़ाइलों को एक साथ शुरू -;-)
binfalse

@grawity और @binfalse: स्पष्टीकरण के लिए धन्यवाद, यह बहुत उपयोगी है! जानकर बहुत अच्छा लगा।
वुल्फ

7

में bashआप इस तरह के रूप में नामित किया कार्यों बना सकते हैं:

+() { pushd "$@"; }
-() { popd "$@"; }

क्या है $@?
लेज़र

2
@Lazer: sh और bash में, $@फंक्शन या स्क्रिप्ट को दिए गए सभी तर्कों को विस्तार देता है। निर्विवाद रूप से यह उसी तरह काम करता है जैसे $*। हालांकि, दोहरे उद्धरण चिह्नों के अंदर, यह बिल्कुल वैसा ही शब्द है जैसा कि मूल रूप से दिया गया है, बिना किसी अतिरिक्त विभाजन के।
user1686

@ लेज़र: $@फ़ंक्शन (समतुल्य "$1" "$2" ...) के लिए दिए गए सभी मापदंडों का विस्तार करता है । अधिक जानकारी के लिए, man bashविशेष पैरामीटर के लिए करें और खोजें।
एंड्रे परमेस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.