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 ...



原作者:
...