'全局化'Bash函数在bash脚本中

时间:2013-09-03 11:16:03

标签: linux bash shell

好吧,那么让我说我的内部有一个.bash文件

lib.bash

#!/bin/bash
function hello_world {
     echo "Hello World!"
}

该文件不会自行调用,而是通过另一个bash文件调用,即

Startup.bash

#!/bin/bash
bash lib.bash
hello_world

但是,如果我运行Startup.bash,我会收到错误:hello_world: command not found

我做错了什么,或者是不可能做我正在尝试做的事情。

3 个答案:

答案 0 :(得分:2)

您可以在startup.bash

中使用此命令
source lib.bash

source命令在当前 shell环境中运行文件,而不是使用bash lib.bash
(或. lib.bash)创建 new ,该脚本的单独环境(并且只有该脚本),这就是该功能未被转移的原因。

source

答案 1 :(得分:1)

为什么不直接在第一个脚本中调用函数?

它看起来像这样:

#!/bin/bash
function hello_world {
     echo "Hello World!"
}
hello_world

如果它是一个简单的脚本,根本不应该是一个问题。 否则尝试使用source命令,如minerz029建议:)

答案 2 :(得分:0)

看看这对你是否也有帮助:

Shell Script Loader