शेल कमांड में क्या मतलब है! #: 3


29

Ack के लिए इंस्टॉल गाइड इस कमांड का उपयोग करके ack स्क्रिप्ट इंस्टॉल करने का सुझाव देता है:

curl http://beyondgrep.com/ack-2.14-single-file > ~/bin/ack && chmod 0755 !#:3 

मैं मानता हूं कि !#:3अंत में किसी तरह का बैक-रेफरेंस है, लेकिन इसका क्या मतलब है? क्या zsh में कोई समकक्ष है? Google मददगार नहीं रहा।


5
मान लेना bash; man bash, फिर इतिहास विस्तार के लिए खोजें
जेफ स्कॉलर

1
इसका मतलब है कि मेरी बिल्ली बहुत बुरे समय में कीबोर्ड के पार चली गई।
1

@IQAndreas: ठीक है, यह एक मान्य कमांड है, इसलिए बिल्ली टाइपिंग डिटेक्टर को हराने के लिए आपकी बिल्ली काफी चतुर होनी चाहिए । स्पष्ट रूप से यह बेकार बिल्ली नहीं है। :
जी-मैन ने कहा कि 'मोनिका'

जवाबों:


32

यह बैश द्वारा विस्तारित एक विशेष वाक्यविन्यास है। यह zsh के लिए भी काम करता है।

बैश मैन पेज (अनुभाग इतिहास विस्तार) के अनुसार, पैटर्न निम्नानुसार विस्तारित होता है:

  • घटना डेसिग्नेटर !# अभी तक लिखे पूरे कमांड लाइन है जो को संदर्भित करता हैcurl http://beyondgrep.com/ack-2.14-single-file > ~/bin/ack && chmod 0755
  • :ईवेंट डिज़ाइनर (यह पूरी पंक्ति) और शब्द डिज़ाइनर के बीच विभाजन (उप-भाग का चयन करता है)
  • शब्द डेसिग्नेटर 3 जो चयन करता तीसरे शब्द / तर्क (शून्य पर शब्द शुरू होता है की गिनती), इस मामले में ~/bin/ack

अंतिम कमांड लाइन (आमतौर पर निष्पादित होने से पहले प्रदर्शित होती है) curl http://beyondgrep.com/ack-2.14-single-file > ~/bin/ack && chmod 0755 ~/bin/ack:।

विवरण के लिए, bash मैनुअल या बहुत समान zsh मैनुअल देखें


7
मैं मदद नहीं कर सकता, लेकिन आश्चर्य है कि किसने सोचा कि यह सुविधा कभी एक अच्छा विचार होगा?
राइमॉइड

3
@Rhymoid, मैं उपयोग नहीं करते !#ज्यादा है, लेकिन !!, !$, !*, !sud:pऔर कई अन्य लोगों के सभी अत्यंत उपयोगी हैं और मैं उन्हें हर समय का उपयोग करें। बाहर की जाँच करें unix.stackexchange.com/a/67/135943
वाइल्डकार्ड

11

में bash, यह इतिहास प्रतिस्थापन है (सभी इतिहास प्रतिस्थापन शुरू होते हैं !)। विशेष रूप से, !#कमांड लाइन पर अब तक सब कुछ का मतलब है, और इसके अलावा ': 3' का अर्थ है तीसरा शब्द (गणना 0 पर शुरू)।

तो, उपरोक्त आदेश में अनुवाद !#:3करता है ~/bin/ack

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.