bash - shell - 在多个bash脚本中,包括公共函数

127 5

我使用Ubuntu 18.04,.bashrc文件包括以下行:


if [ -f ~/.bash_usr_functions ]; then


 . ~/.bash_usr_functions


fi



.bash_usr_functions中,有一组用户定义函数,如:


function MyAmazingFunc()


{


 echo 1st param: $1


 echo Function body is complex...omitted for brevity


}



现在,每当启动一个新的Linux终端时,输入MyAmazingFunc 37,就像预期的那样,

现在我编写了一个新的bash脚本,


#!/bin/bash


AmazingFunc 37



但是,当我使用bash ./NewScript.sh运行这个程序时,出现了一个错误: Command 'MyAmazingFunc' not found

因此,我修改NewScript.sh以包括.bashrc中的相同行:


if [ -f ~/.bash_usr_functions ]; then


 . ~/.bash_usr_functions


fi



这可以工作,但是非常不雅。echo Hello from user functions或者read VAR1在那个文件里。

有没有更好的方法可以在代码库中包含自己的用户函数。

时间: 原作者:

140 2


export -f MyAmazingFunc



请参阅:help export

原作者:
87 0

在NewScript.sh中


["$user_functions_loaded" ] || source ~/.bash_usr_functions



在~/.bash_usr_functions中


user_functions_loaded=1


func AmazingFunc ...



原作者:
...