s-k*_*rek 3 linux bash shell scripting
我的目录中有run.sh脚本。我还有两个名为d1.sh和d2.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文件夹中的所有脚本?
尝试这个,
#!/bin/bash
for file in ./deep/*;
do
source $file;
done
Run Code Online (Sandbox Code Playgroud)