如何使用源缓存文件

如何使用源缓存文件

是否有类似的 bash 命令source,但它只会为给定的 shell 获取一次文件?

例如:

source_cached foo.sh    # runs as normal
source_cached foo.sh    # would not load foo.sh a second time

由于 foo.sh 路径已经被获取,因此不会再次获取它。

答案1

你想要的叫做“包含守卫”。您可以在 Jonathan Leffler 的网站上看到有关 SO 的示例https://stackoverflow.com/a/7518684/6512983

if [ -z "$B_SH_INCLUDED" ]
then
    B_SH_INCLUDED=yes
    ...rest of original contents of b.sh
fi

本质上,您在包含的文件中定义了一个变量,但事先检查它是否存在,如果已经定义了,则提前返回。

相关内容