Um script de shell é apenas uma lista de comandos para executar, basicamente como se você os tivesse digitado na linha de comando. Então a maneira correta é:
module load program/1.1
... assim como você executaria na linha de comando. Observe que, se isso fornecer um comando não encontrado, você provavelmente precisará originar $MODULESHOME/init/<shell>
(que configura o comando module
).
O comando module
é na verdade uma função do shell, é assim que ele é capaz de manipular o ambiente do seu shell atual.
source
faz algo diferente: essencialmente copia & cola o script de origem no seu. Portanto, se o script de origem definir funções, você poderá chamá-las. Se definir variáveis, mesmo as não exportadas, você poderá vê-las.
Agora, se você quiser escrever um script que carregue um monte de módulos para usar no seu shell interativo, então do seu shell interativo você precisa , mas não module
. O módulos FAQ explica isso.