हर अब और फिर यह वास्तव में इसे क्रियान्वित किए बिना बैश के इतिहास में सीधे एक कमांड जोड़ने के लिए उपयोगी होगा। अब तक मैंने जो बंद चीज पाई है #, वह उसके सामने जोड़ रहा है और रिटर्न मार रहा है। क्या बेहतर तरीके हैं?
हर अब और फिर यह वास्तव में इसे क्रियान्वित किए बिना बैश के इतिहास में सीधे एक कमांड जोड़ने के लिए उपयोगी होगा। अब तक मैंने जो बंद चीज पाई है #, वह उसके सामने जोड़ रहा है और रिटर्न मार रहा है। क्या बेहतर तरीके हैं?
जवाबों:
history -s आदेश
./resize-images.shजिसकी अंतिम पंक्ति परिवर्तनों को पूर्ववत करने के लिए एक कमांड को इंगित करती है, यह वास्तव में उपयोगी होगा यदि इसके बजाय स्क्रिप्ट मेरे इतिहास में कमांड जोड़ सकती है तो मुझे बस हिट करना है up-enterअगर मुझे पूर्ववत करने की आवश्यकता है
history -s आदेश
तुम भी आप के लिए यह करने के लिए एक कीस्ट्रोक बाँध सकते हैं। आप इसे बैश प्रॉम्प्ट पर दर्ज कर सकते हैं:
bind '"\C-q": "\C-a history -s \C-j"'
या इसे अपने में जोड़ें ~/.inputrc:
"\C-q": "\C-a history -s \C-j"
तब आप कुछ लिख सकते हैं और दबा सकते हैं Ctrl- qऔर इसे बिना निष्पादित किए इतिहास में जोड़ दिया जाएगा। "इतिहास" से पहले का स्थान historyकमांड का कारण बनता है यदि इतिहास में आपके वैरिएबल को शामिल नहीं किया गया है या । एक और कीस्ट्रोक को "\ Cq" के बजाय चुना जा सकता है।HISTCONTROLignorespaceignoreboth
एक वर्ण "कमांड" से कम कुछ भी साथ आना मुश्किल है, इसलिए हमें वास्तव में कीस्ट्रोक स्तर पर जाने की आवश्यकता है। मेरे बैश सेटअप और एक यूएस कीबोर्ड के साथ जो आप अब करते हैं:
#(आवश्यकताएं SHIFT): +1 निर्देश, +2 कुंजीपटइसलिए कुल 3 निर्देशों में, 5 कुंजी।
ALT#1 निर्देश, 2 कीपेस में यही प्रयोग करता है।
YMMV आपके कीबोर्ड लेआउट और बैश कॉन्फ़िगरेशन पर निर्भर करता है।
#commandरास्ता से ज़्यादा तेज़ है history -s commandउपयोग करने के लिए बहुत आसान है, और यह भी अगर आप मैप history-search-backward/-forwardठीक से। लेकिन यह स्वाद की बात है।