Поскольку по умолчанию сценарии выполняются в подоболочках, вам требуется экспортировать функции, доступные в bash
, но не в zsh
.
В bash
стандартном месте для добавления пользовательских функций находится в ~/.bashrc
, но это не выполняется, если не bash
является интерактивным (в частности, не в подоболочке, выполняющей сценарий), что экспортные функции преодолены.
Что, по-видимому, работает, согласно этому ответу, так это помещать объявления вашей функции ~/.zshenv
, которые выполняются по умолчанию при каждом запуске, интерактивном или нет.
Вам также следует взглянуть на предыдущий (принятый) ответ, который, помимо прочего, объясняет причину, по zsh
которой не поддерживаются экспортируемые функции.