का संदर्भ रखें क्या एक शेल फ़ंक्शन को ओवरराइड करना और मूल संदर्भ को संदर्भित करना संभव है?एक खोल फ़ंक्शन को ओवरराइड करें, मूल
f() { echo original; }
f() { echo wrapper; ...; }
f
इस के उत्पादन में किया जाना चाहिए:
wrapper
original
इस एक अर्द्ध पोर्टेबल तरह से संभव है?
तर्क: मैं अपने कार्यक्रमों को खोल कार्यों के साथ प्रतिस्थापित करके परीक्षण कर रहा हूं जो लॉग फ़ाइल में अपनी कॉल रिकॉर्ड करते हैं। यह तब तक ठीक काम करता है जब तक मैं केवल कमांड और बिल्टिन लपेटता हूं, और जब तक मुझे अंधाधुंध लॉगिंग नहीं लगता है। अब मैं केवल टेस्ट सूट को प्रत्येक टेस्ट में दिलचस्प टुकड़ा रिकॉर्ड करके अधिक रखरखाव करना चाहता हूं।
तो चलो कहते हैं कि मेरा कार्यक्रम
f
g
h
जहां f
, g
, h
सब खोल कार्य हैं के होते हैं, और मैं सिर्फ g
के निष्पादन ट्रेस करने के लिए करना चाहते हैं।
तुमने क्या किया जा सकता है, लेकिन बहुत portably नहीं चाहते हैं। –