बाश में, क्या फ़ंक्शन बॉडी में फ़ंक्शन का नाम प्राप्त करना संभव है? उदाहरण के लिए निम्नलिखित कोड लेना, मैं अपने शरीर में फ़ंक्शन नाम "टेस्ट" प्रिंट करना चाहता हूं, लेकिन "$ 0" फ़ंक्शन नाम के बजाय स्क्रिप्ट नाम का संदर्भ लेता है। तो फ़ंक्शन का नाम कैसे प्राप्त करें?बाश में, क्या फ़ंक्शन बॉडी में फ़ंक्शन का नाम प्राप्त करना संभव है?
#!/bin/bash
function Test
{
if [ $# -lt 1 ]
then
# how to get the function name here?
echo "$0 num" 1>&2
exit 1
fi
local num="${1}"
echo "${num}"
}
# the correct function
Test 100
# missing argument, the function should exit with error
Test
exit 0
धन्यवाद, यह वास्तव में मदद करता है। मैं सिर्फ अपने प्रश्न के समाधान से ज्यादा सीखता हूं। जब स्क्रिप्ट विफल हो जाती है तो इस सरणी को कॉलस्टैक मुद्रित करने के लिए उपयोग किया जा सकता है। –
निश्चित रूप से। उस संबंध में, आपको ब्याज के लिए 'BASH_LINENO' की सामग्री भी मिल सकती है। – FatalError
या आप छोटे और समकक्ष $ FUNCNAME का उपयोग कर सकते हैं। –