我怎么在bash中source_once?

PSk*_*cik 6 bash

什么是bash中一次采购的好方法.

bash是否存储已经获取的文件的路径,或者我是否需要使所有source/ .调用通过将存储这些路径的包装器?

是否有一个标准可用的机制可以找到源参数解析的内容?which除非文件是可执行的,否则似乎不起作用.

Joh*_*024 7

在您可能提供的每个文件中,添加一个语句.假设该文件/etc/interface是您只想输入一次的文件之一,然后按如下方式格式化该文件:

if [ ! "$ETC_INTERFACE" ]
then
    # statements that you
    # want to source...
fi
export ETC_INTERFACE=Yes
Run Code Online (Sandbox Code Playgroud)

这确保了语句/etc/interface只执行一次.如果脚本尝试再次获取它,它将看到ETC_INTERFACE已设置并跳过文件正文.

替代方法

假设一个人不想修改要获取的文件,但可以修改源代码的脚本.在这种情况下,请按如下方式获取:

[ ! "$ETC_INTERFACE" ] && source /etc/interface && export ETC_INTERFACE=Yes
Run Code Online (Sandbox Code Playgroud)

  • 让人惊讶.将该逻辑放在源文件中. (2认同)