В настоящее время я делаю некоторые модульные тесты, которые выполняются из 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() { :; }