सोर्सिंग से फ़ंक्शन कॉल की लाइन संख्या पाएं मैं यह जानने का प्रयास कर रहा हूं कि फ़ाइल और लाइन नंबर से कौन से फ़ंक्शन को कॉल किया गया था। फ़ंक्शन एक लाइब्रेरी फ़ाइल में है जिसे मेरी स्क्रिप्ट द्वारा सोर्स किया जा रहा है।बैश: फ़ाइल
file1:
$source file2
$warn_me "Error: You didn't do something"
करें 2:
$function warn_me() {
$ message=????
$ echo ${message}
$}
वांछित आउटपुट:$: file1: पंक्ति 2: त्रुटि: तुम कुछ
नहीं कियामज़ाक कई फाइलों में आयन कॉल पहले से ही कई बार होता है, इसलिए मैं इसे बदलने के बिना ऐसा करने का कोई तरीका ढूंढने की कोशिश कर रहा हूं।
पहले warn_me समारोह हर फ़ाइल है कि यह प्रयोग किया जाता में परिभाषित किया गया था और यह इतना तरह का ध्यान रखा गया था:
$local message="$BASH_SOURCE:(""${BASH_LINENO}): ""$*"
धन्यवाद, मैंने लाइन को प्रतिस्थापित कर दिया: $ स्थानीय संदेश = "$ BASH_SOURCE [1] :(" "$ {BASH_LINENO}):" "$ *" – spizzak