मैं "बाहर निकलने" आदेश के बाद इसे सहेजने के बजाय प्रत्येक दर्ज कमांड के बाद tcsh में इतिहास को सहेजने का प्रयास करता हूं। ऐसा इसलिए होता है क्योंकि आमतौर पर मैं एक ही समय में लगभग 10 टैब खोलता हूं और उसके बाद मैं प्रत्येक टैब में "बाहर निकलने" के बजाय टर्मिनल विंडो बंद करता हूं। परिणाम यह है कि इतिहास केवल अंतिम टैब के लिए सहेजा जाता है। जब मैं टर्मिनल विंडो बंद करता हूं तो यह समाधान काम नहीं करता है: https://stackoverflow.com/a/3577709/2773143।tcsh - कमांड के बाद इतिहास को सुरक्षित करें
क्योंकि मैं कोई समाधान नहीं मिला सिर्फ इतिहास आदेशों का उपयोग करते हैं, मैं एक अलग तरीके से इसे हल करने की कोशिश की: सीधे ~/.tcsh_history के लिए हर आदेश गूंज और .tcshrc
फ़ाइल में set histfile= ~/.tcsh_history
की स्थापना। हालांकि मुझे यह करने का कोई तरीका नहीं मिला। मैंने .alias
में सभी आदेशों के लिए alias * '*; ~/someScript.tcsh
(कई अन्य संस्करणों के साथ) में एक उपनाम करने के बारे में सोचा लेकिन यह काम नहीं किया। मैंने पाया कि यह प्रत्येक कमांड के लिए अलग-अलग उपनाम करके इसे कैसे काम करता है, लेकिन यह कुछ हद तक बदसूरत है।
उदाहरण के लिए:
alias cd 'cd \!*; ~/saveHist.tcsh \!:0 \!*'
alias grep 'grep \!*; ~/saveHist.tcsh \!:0 \!*'
(आदि)
और ~/saveHist.tcsh फ़ाइल में:
#!/bin/tcsh -f
echo "$argv" >> ~/.tcsh_history
लेकिन निश्चित रूप से यह कुछ हद तक बदसूरत है और इस तरह से कुछ आदेश लिखा जाएगा खिड़की बंद करने के बाद ~/.tcsh_history में दो बार।
कोई विचार?
हम्म। ऐसा लगता है कि आपको कुछ प्रकार के प्रीकॉमैंड उपनामों में 'इतिहास-एम' जैसे कुछ की आवश्यकता होगी। (untested) –
'उर्फ precmd' इतिहास -एम 'काम करने लगता है, लेकिन यह कमांड इतिहास संख्या के साथ विनाश खेलता है। –