Ainda existe outra maneira de fazer isso.
Se você usar o verdadeiro Korn Shell (não tenho certeza sobre o pdksh), você pode ter funções carregadas dinamicamente.
Crie um arquivo chamado "main" em algum lugar no PATH:
#!/bin/ksh
echo "Main ksh script"
echo "Calling georgi, probably in another file"
georgi $1 $2 $3
echo "Back from georgi"
franco $1 $2 $3
Crie um arquivo chamado "georgi" em outro lugar, digamos /tmp
:
function georgi {
echo "Enter function georgi $1 $2 $3"
}
function franco {
echo "Enter function franco $1 $2 $3"
}
Crie o arquivo executável principal. Tornar o arquivo "georgi" não execuable. Exportar uma variável chamada FPATH:
export FPATH=/tmp
Execute o arquivo "main":
% ./main aaa bbb c123
Main ksh script
Calling georgi, probably in another file
Enter function georgi aaa bbb c123
Back from georgi
Enter function franco aaa bbb c123
Isso é meio obscuro, e você precisa fazer as coisas exatamente corretas, como nomear o arquivo carregado automaticamente da mesma forma que a primeira função que chama, e não ter o arquivo carregado automaticamente marcado se estiver em PATH e FPATH.