यहां मैं एक समस्या के बारे में बताऊंगा
export PROMPT_COMMAND="${PROMPT_COMMAND:+$PROMPT_COMMAND$'\n'}history -a; history -c; history -r"
तथा
PROMPT_COMMAND="$PROMPT_COMMAND;history -a; history -n"
यदि आप स्रोत ~ / .bashrc चलाते हैं, तो $ PROMPT_COMMAND पसंद आएगा
"history -a; history -c; history -r history -a; history -c; history -r"
तथा
"history -a; history -n history -a; history -n"
प्रत्येक बार जब आप 'स्रोत ~ / .bashrc' चलाते हैं तो यह पुनरावृत्ति होती है। प्रत्येक बार 'स्रोत ~ / .bashrc' चलाने के बाद 'इको $ PROMPT_COMMAND' चलाकर आप PROMPT_COMMAND की जाँच कर सकते हैं।
आप देख सकते हैं कि कुछ आदेश स्पष्ट रूप से टूटे हुए हैं: "इतिहास-एन इतिहास-ए"। लेकिन अच्छी खबर यह है कि यह अभी भी काम करता है, क्योंकि अन्य भाग अभी भी एक वैध कमांड अनुक्रम बनाते हैं (बस कुछ आदेशों को दोहराव से निष्पादित करने के कारण कुछ अतिरिक्त लागत शामिल है। और इतना साफ नहीं है।)
व्यक्तिगत रूप से मैं निम्नलिखित सरल संस्करण का उपयोग करता हूं:
shopt -s histappend
PROMPT_COMMAND="history -a; history -c; history -r"
जिसमें अधिकांश कार्यक्षमताओं हैं, जबकि ऊपर उल्लिखित जैसा कोई मुद्दा नहीं है।
बनाने के लिए एक और बिंदु है: वास्तव में कुछ भी नहीं जादू है । PROMPT_COMMAND सिर्फ एक सादे बैश वातावरण चर है। बैश प्रॉम्प्ट ($ साइन) पाने से पहले इसमें कमांड निष्पादित हो जाते हैं। उदाहरण के लिए, आपका PROMPT_COMMAND "गूंज 123" है, और आप अपने टर्मिनल में "ls" चलाते हैं। प्रभाव "एलएस; गूंज 123" चलाने जैसा है।
$ PROMPT_COMMAND="echo 123"
आउटपुट (बस 'PROMPT_COMMAND = "गूंज 123", $ PROMPT_COMMAND' चलाने की तरह):
123
निम्नलिखित चलाएँ:
$ echo 3
उत्पादन:
3
123
"History -a" का उपयोग इतिहास कमांड को मेमोरी में ~ / .bash_history पर लिखने के लिए किया जाता है
"History -c" का प्रयोग मेमोरी में हिस्ट्री कमांड्स को क्लियर करने के लिए किया जाता है
"History -r" का उपयोग इतिहास कमांड को ~ / .bash_history से मेमोरी में पढ़ने के लिए किया जाता है
इतिहास कमांड स्पष्टीकरण यहाँ देखें: http://ss64.com/bash/history.html
पुनश्च: जैसा कि अन्य उपयोगकर्ताओं ने बताया है, निर्यात अनावश्यक है। देखें: .bashrc में निर्यात का उपयोग करना