Eu escrevi o script a seguir para definir algumas variáveis de ambiente quando necessário.
#!/bin/sh
export BASE=/home/develop/trees
echo $BASE
export PATH=$PATH:$BASE
echo $PATH
Abaixo do comando e dos resultados que posso ver no meu terminal: o script é executado, mas as variáveis não são definidas no final.
~$: ./script.sh
/home/develop/trees
/bin:......:/home/develop/trees
~$: echo $BASE
~$:
O que há de errado? Desde já, obrigado. Mirko
export
passar variáveis para os subshells, um subshell é uma cópia do seu shell atual, incluindo variáveis e funções etc. As variáveis exportadas são copiadas para novos processos gerados no shell, independentemente de esse processo ser outro shell ou não. Em segundo lugar,.
é o comando POSIX para fornecimento. O Bash é adicionadosource
como um sinônimo mais legível, mas você não pode confiar que ele esteja disponível no sh. Por fim, em. ./script
vez de. script
se você quiser evitar surpresas. mywiki.wooledge.org/BashFAQ/060