Em bash
, essa é uma boa maneira de fazer isso, sim.
O fornecimento do script "library" usando source
ou .
seria uma solução adequada para o seu problema de querer compartilhar uma definição de função entre dois ou mais scripts. Cada script que precisava de acesso à (s) função (ões) definida (s) no (s) script (s) da "biblioteca" criaria o (s) arquivo (s) necessário (s), provavelmente na parte superior do script.
Isso permitiria que você coletasse funções relacionadas em um único script de "biblioteca" e as fornecesse para obter acesso a elas.
Não totalmente não relacionado, mas o shell bash
também tem a capacidade de originar automaticamente um arquivo ao executar um shell não interativo (por exemplo, um script). Isso pode ser usado para configurar um ambiente específico para o script:
BASH_ENV="$HOME/stuff/script.env" ./myscript
... onde script.env
pode fazer qualquer coisa, desde definir funções e configurar variáveis shell ou ambiente, até obter outros arquivos, etc.
Alguns shells, como ksh93
, possuem uma variável de ambiente que aponta para um diretório que pode conter scripts de definição de função como esses. Em ksh93
, essa variável é chamada FPATH
. Um script, $FPATH/foo
, conteria uma função chamada foo
, que seria encontrada automaticamente quando o usuário digitar foo
na linha de comando (ou em um script). O bash
shell, no meu conhecimento, não possui essa funcionalidade específica.
Outros shells têm outras formas de funcionalidade de "carregamento automático".