Bash
如何使用源記憶體文件
是否有一個 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
本質上,您在包含的文件中定義了一個變數,但事先檢查它是否存在,如果它已經定義,則提前返回。