मैं zsh में एक फ़ंक्शन कैसे बना सकता हूं जो एक मौजूदा कमांड को उसी नाम से बुलाता है?


9

मैं zshउस फ़ंक्शन को कैसे लिख सकता हूं जो मौजूदा कमांड को उसी नाम के साथ फ़ंक्शन के रूप में आमंत्रित करता है? उदाहरण के लिए, मैंने अपने प्रश्न का वर्णन करने के लिए यह कोशिश की है:

function ls 
{
    ls -l $1 $2 $3
}

जब मैं इसे निष्पादित करता हूं तो मुझे ls *निम्नलिखित मिलते हैं:

ls:1: maximum nested function level reached

मैं यह मानता हूं क्योंकि फ़ंक्शन को पुनरावर्ती कहा जा रहा है। मैं उससे कैसे बच सकता हूं?

यह एक क्रूड उदाहरण है, और इस मामले में एक अन्य व्यक्ति काम करेगा, लेकिन मेरे पास एक अधिक जटिल उदाहरण है जहां एक उपनाम उपयुक्त नहीं है और इसलिए मुझे एक फ़ंक्शन लिखने की आवश्यकता होगी।

जवाबों:


25

क्या हो रहा है कि आप पुनरावर्ती रूप से अपने lsकार्य को बुला रहे हैं । बाइनरी का उपयोग करने के लिए, आप ZSH के बिलिन का उपयोग कर सकते हैं command

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