我可以在 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 的变量设置属性。不是父外壳。您需要在中定义变量当前的外壳上下文。