ksh - 全局函数

时间:2014-12-09 10:17:20

标签: function global ksh

在ksh中,我需要声明un全局函数,但是我找不到正确的代码。 你能说出它是否可能以及如何?

我的代码的例子:

$ cat script1.ksh
#/bin/ksh
.  ./lib.ksh
printVar "script1"
./script2.ksh

$ cat script2.ksh
#/bin/ksh
printVar "script2"

$ cat lib.ksh
function printVar {
    echo "$1"
}

执行:

$ ./script1.ksh
script1
./script2.ksh: line 2: printVar: command not found

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

更改script2.ksh,以便lib.ksh知道您的“功能库”,如下所示:

#/bin/ksh
.  ./lib.ksh         # Dot in my function library
printVar "script2"

答案 1 :(得分:1)

如Setchell所述,在script2中包含lib.ksh,或者在script1中包含script2:

$ cat script1.ksh
#/bin/ksh
. ./lib.ksh
printVar "script1"
. ./script2.ksh

$ cat script2.ksh
#/bin/ksh
printVar "script2"

$ cat lib.ksh
function printVar {
    echo "$1"
}