2010-04-08 13 views
5

हमारे ksh पर्यावरण कई कार्यों को परिभाषित करता है। इन कार्यों के नामों को तब typeset -f ksh कमांड (या functions उपनाम) का उपयोग करके सूचीबद्ध किया जा सकता है। क्या इन कार्यों के लिए परिभाषा (यानी स्रोत कोड) देखना संभव है?क्या ksh फ़ंक्शन के लिए "स्रोत" देखना संभव है?

यह एक स्पष्ट प्रश्न की तरह लगता है, लेकिन मैंने typeset -f पर किसी भी भाग्य के साथ सभी प्रकार के पैरामीटरों का प्रयास नहीं किया है।

(लिनक्स पर) एक उदाहरण के रूप:

$ foo() 
> { 
> echo foo 
> } 
$ foo 
foo 
$ typeset -f foo 
foo 
$ 

कुछ के लिए (लेकिन सभी नहीं) अन्य कार्यों के माहौल में डिफ़ॉल्ट रूप से परिभाषित किया गया, typeset -fकरता स्रोत दिखाते हैं।

अद्यतन 1: यह लिनक्स कर्नेल के साथ हो रहा है 2.4.21-32

अद्यतन 2: अद्यतन 2: Ctrl-V देता है "संस्करण एम 1993/12/28 n +" - इस तरह लगता है काफी एक पुराने है संस्करण इतना नीचे

धन्यवाद फिक्स गाइल्स द्वारा mentionned नहीं हो सकता, स्टीव

+1

'फ़ंक्शंस 'स्रोत सूचीबद्ध करेगा, कम से कम मैंने ksh – ghostdog74

+0

के अपने संस्करण पर कोशिश की है ऐसा लगता है कि लिनक्स पर," फ़ंक्शंस "कमांड कुछ कार्यों के लिए स्रोत दिखाता है लेकिन सभी नहीं। सोलारिस पर यह केवल फ़ंक्शन नामों की एक सूची दिखाता है। – stevec

+0

और ksh का संस्करण? वितरण और इसके संस्करण को भी शामिल कर सकते हैं। –

उत्तर

2

प्रश्न ksh के संस्करण का उल्लेख नहीं करता है लेकिन एक पुराने संस्करण का सुझाव देता है जिसमें एक बग या सीमा हो सकती है। यहाँ ksh93 बदलाव का से प्रासंगिक अर्क हैं:

08-01-31 --- रिलीज ksh93s + ---
07-11-01 एक बग, जिसमें -f मज़ा टाईपसेट प्रदर्शित नहीं किया समारोह परिभाषा जब एक सबहेल में बुलाया गया है तय किया गया है।

03-03-18 --- रिलीज ksh93o ---
03-02-28 सभी कार्यशील परिभाषाएँ टाइपसेट साथ प्रदर्शित किया जा सकता -f नहीं सिर्फ इतिहास फ़ाइल में संग्रहीत उन। इसके अलावा, टाइपसेट + एफ लाइन नंबर और इस फ़ंक्शन को परिभाषित करने वाले फ़ाइल के पथ पथ वाली टिप्पणी के बाद फ़ंक्शन नाम प्रदर्शित करता है।

+0

धन्यवाद - संपादित प्रश्न। स्टीव – stevec

2

किसी दिए गए समारोह के स्रोत देखने के लिए, typeset -f <function-name> उपयोग करते हैं, उदाहरण के लिए:

$ foo 
foo 
$ typeset -f foo 
function foo 
{ 
    echo foo 
} 

आप सभी कार्यों और उनके स्रोत को देखने के लिए एक नंगे typeset -f का भी उपयोग कर सकते हैं।

+0

धन्यवाद - मुझे एहसास नहीं हुआ था कि 'कार्य'' टाइपसेट-एफ' के लिए सिर्फ एक उपनाम था - मैंने ऊपर दिए गए प्रश्न को अद्यतन किया है। – stevec

+0

यह एक अजीब है। लिनक्स और क्ष का संस्करण क्या है? जो काम प्रदर्शित नहीं करते हैं, उनमें कुछ भी सामान्य है? – pra

+0

2.4.21-32 (मैंने ऊपर मूल प्रश्न भी अपडेट किया है) – stevec

संबंधित मुद्दे