gpt4 book ai didi

shell - Shell 脚本中是否有类似 C++ 中的 "include guard"的机制?

转载 作者:行者123 更新时间:2023-12-04 16:55:27 26 4
gpt4 key购买 nike

让我们看一个例子:在我的 main.sh 中,我想获取 a.sh 和 b.sh。但是,a.sh 可能已经采购了 b.sh。因此它会导致 b.sh 中的代码执行两次。在 C++ 中是否有类似“包含保护”的机制?

最佳答案

如果您要采购脚本,通常会使用它们来定义函数和/或变量。

这意味着您可以通过测试脚本定义的(其中一个)函数或变量来测试脚本是否来自之前。

例如(在 b.sh 中):

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

据我所知,没有其他方法可以做到这一点。特别是,您不能提前退出或返回,因为这会影响 shell 获取文件。您不必使用仅用于文件的名称;您可以使用文件始终定义的名称。

关于shell - Shell 脚本中是否有类似 C++ 中的 "include guard"的机制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7518584/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com