调用在另一个bash文件中声明的方法



我有两个bash文件,位于不同的文件夹中。我想从bash文件a中从另一个bash文件b中调用abc()方法,为此我可以进行导入。但是,如果这些代码被用于生产环境呢?我不能简单地提供我在本地创建的文件。

的例子:

  • 我正在运行的主bash文件"third">

    #!/bin/bash
    .  /Users/r/r1-tests/r/fourth
    
    abc
    
  • bash文件"fourth"其中method声明为

    #!/bin/bash
    function abc()
    {
    echo "hello"
    }
    

我可以不使用"在"第三"?

但是如果在生产环境中使用这些代码呢?

那就把它也包括进去。

您的问题似乎不是包含文件,而是包含不使用绝对路径的文件。所以使用相对包含它路径。相对于. .例如当前文件:

. "${BASH_SOURCE%/*}"/dir/with/fourth
  • 在Bash
  • 中获取文件路径参数中的最后一个dirname/filename
  • 如何从脚本本身中获得Bash脚本的源目录?

或者相对于git存储库:

. "$(git rev-parse --show-toplevel)"/some/dir/dir/with/fourth
  • 是否有办法在一个命令中获得git根目录?

最新更新