Você pode source
o arquivo init.sh
. Não é necessário export
a função nesse arquivo.
$ cat init.bash
foo() { echo $1; }
E use:
$ . ./init.bash && foo test
test
O fornecimento de um arquivo executaria comandos a partir dele no contexto atual do shell. Como tal, as funções estariam disponíveis no pai .
export
definiria o atributo para uma variável que seria aplicável para o shell e sub-shell atuais. Não o shell pai. Você precisa definir a variável no contexto da shell atual .