Bash

如何使用源記憶體文件

  • September 15, 2019

是否有一個 bash 命令,source除了它只會為給定的 shell 提供一次文件?

例如:

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

由於 foo.sh 路徑已經被獲取,它不會再次獲取它。

您想要的稱為“包含警衛”。您可以在https://stackoverflow.com/a/7518684/6512983上看到 Jonathan Leffler 關於 SO 的範例。

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

本質上,您在包含的文件中定義了一個變數,但事先檢查它是否存在,如果它已經定義,則提前返回。

引用自:https://unix.stackexchange.com/questions/541925