Eu tenho mais uma resposta original com algumas melhorias potencialmente úteis. Algumas das informações dependem do usuário pretendido de seus scripts, algumas são de conhecimento geral sobre variáveis bash e outras são de minha própria experiência.
O diretório que você armazena seus scripts (~ / bin) e / ou o diretório que você possui em suas declarações de variáveis (~ / lib) podem ser rapidamente referenciados com um pequeno mod para sua variável de ambiente PATH.
Variáveis são específicas para o ambiente de onde são chamadas. Ou seja, se você exportá-los, eles se tornarão disponíveis globalmente para seu uso, mas, nesse contexto, apenas para o seu ambiente de login. Se você alterá-los dentro de um script, eles só terão esse valor enquanto o script estiver sendo executado.
No meu .bashrc eu defino e exporto VAR="variável de login". Isso é feito toda vez que eu faço login no meu host solaris.
Agora, neste script de exemplo que eu chamo de proof.bash, modificarei VAR no contexto global do script e, em seguida, novamente em uma função dentro do script. Isso não altera o valor da variável depois que o script é executado.
#!/bin/bash
# VAR is usable because it was declared/exported outside this script.
echo $VAR
#Define bash global variable
#This variable is global and can be used anywhere in this bash script
VAR="global variable"
function see_it_to_believe {
#Define bash local variable
#This variable is local to bash function only
local VAR="local variable"
echo $VAR
}
echo $VAR
see_it_to_believe
# Note the bash global variable did not change
# "local" is bash reserved word
echo $VAR
Após o script ser executado, posso echo $VAR
e obter "variável de login" ainda.