让函数进入的聪明方法。从其他bash脚本调用bashrc?

让函数进入的聪明方法。从其他bash脚本调用bashrc?,bash,function,call,Bash,Function,Call,我想从test.sh调用fun1.bashrc cat test.sh #!/bin/bash fun1 fun1应在.bashrc中按以下格式编写: fun1(){ #do something } export -f fun1 我想从其他bash脚本调用.bashrc中的所有函数(从fun2到funm),在每个函数的最后一行添加export-f funm,10个函数产生10行export-f funm,与.bashrc文件类似 有没有一种明智的方法来实现目标?。bashrc是。如果要在脚本

我想从test.sh调用fun1.bashrc

cat test.sh

#!/bin/bash
fun1
fun1应在.bashrc中按以下格式编写:

fun1(){
#do something
}
export -f fun1
我想从其他bash脚本调用.bashrc中的所有函数(从fun2到funm),在每个函数的最后一行添加
export-f funm
,10个函数产生10行
export-f funm
,与.bashrc文件类似

有没有一种明智的方法来实现目标?

。bashrc
是。如果要在脚本中使用函数,请不要在那里定义它们

如果要创建包含脚本中使用的函数的文件,请将其设置为单独的文件,并从脚本(以及
.bashrc
)中获取该文件的源代码。将函数放入,例如
~/lib/bash/myfunctions
,然后放入

. ~/lib/bash/myfunctions

在你的脚本中。

你不能只
导出-f alpha-beta-gamma-delta epsilon zeta
导出-f fun{1..10}?你不能安全地假设每一个非交互shell都是交互shell的子进程,但是依赖于
。脚本的某个父脚本调用了
,你就可以做出这样的假设。脚本可以由cron作业、非交互远程shell等调用。这绝对是更好的做法。