Мне нравится писать мои сценарии как "modulinos", сценарии оболочки, которые могут быть вызваны сами по себе как небольшие программы CLI или импортированы другими программами в виде библиотек.
Я могу сделать это в bash с помощью:
https://github.com/mcandre/scriptedmain/tree/master/bash
И я хотел бы сделать это и в zsh. Как я могу это сделать?
Самое главное - найти способ эмуляции bash:
if [[ "$BASH_SOURCE" == "$0" ]]
then
main
fi
Другими словами, найдите имя этого script и имя вызываемой программы (если они равны, запустите main(), когда они разные, пропустите, поскольку этот script импортируется как библиотека).
Проблема в том, что я думаю, что zsh $0
ведет себя как bash $BASH_SOURCE
, и я не думаю, что для компенсации требуется zsh, эквивалентный bash $0
(который работает по-другому).