我喜欢将我的脚本编写为“modulinos”,可以作为小型 CLI 程序自行调用的 shell 脚本,或者由其他程序作为库导入。
我可以在 bash 中这样做:
https://github.com/mcandre/scriptedmain/tree/master/bash
我也想在 zsh 中这样做。我怎么能这样做?
最重要的是找到一种模拟 bash 的方法:
if [[ "$BASH_SOURCE" == "$0" ]]
then
main
fi
换句话说,找到这个脚本的名字和被召唤的程序的名字(当它们相等时,运行 main(),当它们不同时,跳过,因为这个脚本是作为库导入的)。
问题是,我认为 zsh 的$0
行为类似于 bash $BASH_SOURCE
,并且我认为没有与 bash 等效的 zsh $0
(工作方式不同)来补偿。