如何从另一个脚本的文件夹中获取多个 bash 脚本,以便我可以使用这两个脚本中的函数?

s-k*_*rek 3 linux bash shell scripting

我的目录中有run.sh脚本。我还有两个名为d1.shd2.sh的脚本,位于其名为deep的子目录中。我想在 run.sh 脚本中获取 d1.sh 和 d2.sh ,因此我可以使用d2.sh中存储的“test”函数。

run.sh的代码如下所示:

#!/bin/bash

source ./deep/*

test
Run Code Online (Sandbox Code Playgroud)

d1.sh

#!/bin/bash

echo -e "d1 is loaded"
Run Code Online (Sandbox Code Playgroud)

d2.sh

#!/bin/bash

echo -e "d2 is loaded"

test() {
    echo -e "test passed!"
}
Run Code Online (Sandbox Code Playgroud)

我使用以下命令执行run.sh

bash run.sh
Run Code Online (Sandbox Code Playgroud)

我得到输出:

d1 is loaded
Run Code Online (Sandbox Code Playgroud)

所以看起来d1.sh脚本正在加载,但d2.sh没有加载。我的问题是,为什么会发生这种情况以及我应该如何加载存储在./deep文件夹中的所有脚本?

Eby*_*cob 7

尝试这个,

#!/bin/bash

for file in ./deep/*;
  do
      source $file;
 done
Run Code Online (Sandbox Code Playgroud)