मैं cdअपनी आवश्यकताओं के अनुसार कमांड की कार्यक्षमता को अनुकूलित करना चाहता हूं।
मैंने निम्नलिखित कार्य को परिभाषित किया -
function cd () { cd "$@" && pushd "$@"; }
इस फ़ंक्शन का आशय स्वचालित रूप से निर्देशिका को स्टैक पर धकेलना है ताकि यह मुझे pushd .हर बार मैन्युअल रूप से टाइप करने के प्रयास से बचाता है ।
हालांकि, उपरोक्त फ़ंक्शन एक असीम रूप से पुनरावर्ती फ़ंक्शन है, क्योंकि कॉल को फ़ंक्शन के रूप में cdव्याख्या की जाती है और cdअंतर्निहित नहीं है।
मैं cdइस फ़ंक्शन में अंतर्निहित का संदर्भ कैसे दूं?
मुझे पता है कि उपनाम का उपयोग करके बच सकते हैं \। फ़ंक्शंस से बचने या अधिक स्पष्ट तरीके से अंतर्निहित संदर्भ का तरीका क्या है?
नोट: मैं अपने कार्य का नाम किसी और चीज़ में नहीं रखना चाहता।
pushdसमर्थन नहीं करता है -P। लेकिन आप सही हैं, जैसा कि प्रश्न में दिखाया गया है कि function cdयह थोड़ा गलत है, क्योंकि इसने दो बार निर्देशिका बदल दी।
alias cd=pushd? जब आप किसी ऐसी चीज की अपेक्षा करते हैं जो निरपेक्ष पथ (जैसे,cd ../) नहीं है , तो आप क्या करेंगे ?