В настоящее время я делаю некоторые модульные тесты, которые выполняются из Bash. Модульные тесты инициализируются, выполняются и очищаются в bash-скрипте. Этот скрипт обычно содержит функции init (), execute () и cleanup (). Но они не обязательны. Я хотел бы проверить, если они определены или не определены.
Раньше я делал это с помощью поиска и подмены источника, но это казалось неправильным. Есть ли более элегантный способ сделать это?
Изменить: следующий фрагмент работает как шарм:
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() { :; }