关于bash:从另一个shell脚本调用函数

Call function from another shell script

本问题已经有最佳答案,请猛点这里访问。

我已经写了一个脚本,现在我想通过在其他文件中移动我的主脚本的一部分来提高它的可读性,但不幸的是我不能。

现在假设我在文件utils.sh中有以下代码:

1
2
3
4
5
6
#!/bin/bash

sayHello ()
{
   echo"Hello World"
}

从我的主脚本中,我尝试以下方法,但不起作用:

1
2
3
4
5
#!/bin/bash

./utils.sh

sayHello

所以,问题是,如何从utils.sh中调用函数?


你必须通过.source获得:

1
2
3
4
~$ cat >main.sh
#!/bin/bash
. ./utils.sh #or source ./utils.sh
sayHello

然后

1
2
~$ ./main.sh
Hello World

你的主脚本应该是这样的:

1
2
3
4
5
6
#!/bin/bash

source utils.sh

echo"Main"
sayHello