Если вы хотите проверить, что существует определенная в настоящее время (или, по крайней мере, потенциально отмеченная для автозагрузки) функция с именем foo
, независимо от того, может ли она также быть доступна встроенным / исполняемым / ключевым словам / псевдонимом name, вы можете сделать:
if typeset -f foo > /dev/null; then
echo there is a foo function
fi
Хотя обратите внимание, что если есть ключевое слово или псевдоним с именем foo
, он будет иметь приоритет над функцией (если не заключен в кавычки).
Вышеупомянутое должно работать в ksh
(откуда оно взято), zsh
и bash
.