1

好吧,假设我有一个 .bash 文件,里面有这个

lib.bash

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

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

启动.bash

#!/bin/bash
bash lib.bash
hello_world

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

我做错了什么,或者不可能在 bash 上做我想做的事情。

4

3 回答 3

2

您可以在您的startup.bash

source lib.bash

source命令在当前shell 环境中运行文件,与 using bash lib.bash
(or . lib.bash) 不同,它为该脚本(并且仅该脚本)创建一个的、单独的环境,这就是该函数不被继承的原因。

来源

于 2013-09-03T11:20:49.463 回答
1

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

它看起来像这样:

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

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

于 2013-09-03T11:23:03.290 回答
0

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

Shell 脚本加载器

于 2013-09-03T11:43:57.227 回答