इसे निष्पादित करने से पहले सदस्यता का विस्तार करें?


11

मैं अक्सर सबशेल्स का उपयोग करके कमांड चलाता हूं, और कभी-कभी कुछ चलाने से पहले सब्स्क्राइब्ड का विस्तार करना चाहता हूं .. इस तरह से मैं सत्यापित कर सकता हूं कि मैं क्या कर रहा हूं, और संभवतः जो कुछ भी हो रहा है उसे संपादित करें।

उदाहरण के लिए, मैं इसे चलाने से पहले निम्नलिखित कमांड लाइन का विस्तार कैसे कर सकता हूं, इसलिए मैं उपधारा के परिणामों को संपादित कर सकता हूं?

जैसे

$ find -name "test.txt" 
/tmp/test.txt

$ mv $(!!) /tmp/new.txt

मैं कमांड चलाने से पहले सबस्क्रिप्शन का विस्तार देखना चाहता हूं, जैसे:

$ mv /tmp/test.txt /tmp/new.txt

क्या ऐसा करने का कोई तरीका है?


1
zsh यह कर सकता है, लेकिन मैं निश्चित रूप से कुछ बैश नहीं कर सकता। Zsh में यदि आप पैरामीटर पर अपना कर्सर रखते हैं, और TAB को हिट करते हैं, तो यह इसे विस्तारित करेगा
पैट्रिक

जब से मैंने स्विच किया है zshऔर यह बहुत अच्छा है और ऐसा करता है, जैसा कि आप सुझाव देते हैं ... अच्छा टिप! मैं यहां मूल उत्तर छोड़ दूंगा, क्योंकि यह एक bashप्रश्न था ।
ब्रैड पार्क

जवाबों:


5

shell-expand-line( \e\C-e) बाश में आदेश प्रतिस्थापन का विस्तार करता है।

$ bind -p|grep shell-ex
"\e\C-e": shell-expand-line

$(!!)\e\C-e पिछली कमांड को फिर से चलाएंगे और आउटपुट डालेंगे:

"\eo": "$(!!)\e\C-e"

यह अन्य कमांड प्रतिस्थापन का विस्तार भी करता है, लेकिन इसकी तरह कोई कमांड नहीं है shell-expand-word

4.0 में या बाद में आप भी सक्षम कर सकते हैं globstar, टाइप करें **/file.txt, और उपयोग करें glob-complete-word( \eg) या glob-expand-word( \C-x*)।


2

यहाँ एक आसान ट्रिक है - इस लाइन को ~ / .inputrc में जोड़ें (यदि आवश्यक हो तो फ़ाइल बनाएं):

नियंत्रण-एक्स: शेल-विस्तार-लाइन

ध्यान दें कि आप या तो केवल इतिहास, या अपने उपनाम, या दोनों का विस्तार करने के लिए निम्नलिखित में से एक हो सकते हैं:

नियंत्रण- x: इतिहास-विस्तार-रेखा

या

नियंत्रण-एक्स: उपनाम-विस्तार-लाइन

या

नियंत्रण- x: इतिहास और उपनाम-विस्तार-रेखा

यह इस ब्लॉग से चमका था , और सुपरयूज़र पर यह सवाल , जो बहुत ही समान है:

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