将 bash 函数包含到父脚本中

将 bash 函数包含到父脚本中

我可以在 bash 中定义函数并使用它:

foo() { echo $1; }
foo test

但如果我想在一个 bash 脚本中收集我的函数,则所有这些函数都不可用:

初始化bash

#!/bin/bash
foo() { echo $1; }  
export -f foo # This not helps

使用:

./init.bash && foo test # error here

有没有办法将脚本的函数导出到父作用域?
如果不写入.bashrc,它就太全局
化了,.bashrc但仅适用于当前的 bash 实例...

答案1

你可以source把文件init.sh.不需要export该文件中的函数。

$ cat init.bash 
foo() { echo $1; }

并使用它:

$ . ./init.bash && foo test
test

获取文件将在当前 shell 上下文中执行来自该文件的命令。因此,这些功能将在家长

export将为适用于当前 shell 和子 shell 的变量设置属性。不是父外壳。您需要在中定义变量当前的外壳上下文。

相关内容