वर्तमान में मैं कुछ यूनिट परीक्षण कर रहा हूं जो बैश से निष्पादित किए जाते हैं। इकाई परीक्षणों को बैश स्क्रिप्ट में आरंभ, निष्पादित और साफ किया जाता है। इस स्क्रिप्ट में सामान्य रूप से एक init (), निष्पादित () और क्लीनअप () फ़ंक्शन होते हैं। लेकिन वे अनिवार्य नहीं हैं। अगर वे परिभाषित हैं या नहीं तो मैं परीक्षण करना चाहूंगा।
मैंने ऐसा पहले स्रोत को तोड़-मरोड़ कर किया था, लेकिन यह गलत लग रहा था। क्या ऐसा करने का अधिक सुरुचिपूर्ण तरीका है?
संपादित करें: निम्नलिखित स्निपलेट एक आकर्षण की तरह काम करता है:
fn_exists()
{
LC_ALL=C type $1 | grep -q 'shell function'
}
type -tऔर ==।
type test_functionकहते हैं । test_function on funktio.ist eine Funktion
LC_ALL=Cके लिए रेसक्यू
fn_exists foo || foo() { :; }