O comando source não funciona quando usado dentro do shell script

O comando source não funciona quando usado dentro do shell script

Estou usando um instalador que adiciona uma variável de ambiente ao ~/.bash_profilearquivo.

Quando estou iniciando o servidor jetty, ele não consegue encontrar essa entrada...

Quando eu corro

$ source ~/.bash_profile

ele recarrega o ~/.bash profilearquivo e o servidor é iniciado com sucesso sem problemas.

O problema é que meu cliente não iniciará uma nova sessão de shell nem atualizará o ~/.bash_profilearquivo manualmente.

Tentei adicionar o source ~/.bash_profilecomando dentro de um shell script que chamo quando invoco o script de inicialização do servidor jetty, mas também não funciona.

Existe alguma outra maneira de recarregar ~/.bash_profilea sessão atual? Qualquer informação que você possa me fornecer será muito apreciada.

Responder1

Um script de shell normalmente não é executado pelo bash (exceto quando você organiza isso explicitamente).

Observe que em muitos sistemas Linux /bin/sh agora é dashe como sourceé um comando shell não padrão que foi importado de csh, um shell como o dash não o suporta.

O comando ponto definido pelo POSIX ( .) deve funcionar desde que o parâmetro de arquivo que você passa não contenha extensões fora do padrão.

informação relacionada