Como administrador de sistemas, provavelmente sabe a importância das variáveis de ambiente em Bash.
As variáveis de ambiente são usadas para definir variáveis que terão impacto na forma como os programas serão executados.
Em Bash, as variáveis de ambiente definem muitas coisas diferentes: o seu editor predefinido, o seu nome de utilizador actual ou o fuso horário actual.
O mais importante, as variáveis de ambiente podem ser utilizadas em scripts Bash para modificar o comportamento dos seus scripts.
Neste tutorial, vamos ver como pode facilmente definir variáveis de ambiente em Bash.
Tabela de conteúdos
Definir variáveis de ambiente em Bash
A forma mais fácil de definir variáveis de ambiente em Bash é usar a palavra-chave “exportar” seguida do nome da variável, um sinal de igual e o valor a ser atribuído à variável de ambiente.
Por exemplo, para atribuir o valor “abc” à variável “VAR”, escreveria o seguinte comando
$ export VAR=abc
Se quiser ter espaços no seu valor, tais como “o meu valor” ou “Linus Torvalds”, terá de incluir o seu valor entre aspas duplas.
$ export VAR="my value"$ export VAR="Linus Torvalds"
Para exibir a sua variável de ambiente, tem de preceder a variável com um sinal de dólar.
$ echo $VARLinus Torvalds
Simplesmente, pode usar o comando “printenv” para imprimir o valor da sua variável de ambiente.
Desta vez, não tem de a preceder com um sinal de dólar.
$ printenv VARLinus Torvalds
Configurar variáveis usando interpolação Bash
Em alguns casos, poderá ter de definir uma variável de ambiente específica para o resultado de um comando no seu servidor.
Para o conseguir, necessitará de interpolação Bash, também chamada de substituição de parâmetros.
Vamos dizer, por exemplo, que pretende armazenar o valor da sua instância shell actual numa variável chamada MYSHELL.
Para definir uma variável de ambiente usando substituição de parâmetro, use a palavra-chave “export” e tenha o comando entre parênteses fechados precedido por um sinal de dólar.
$ export VAR=$(<bash command>)
Por exemplo, dado o nosso exemplo anterior, se quiser ter a variável de ambiente “SHELL” numa nova variável chamada “MYSHELL”, você escreveria
$ export MYSHELL=$(echo $SHELL)
Congratulações, você criou com sucesso a sua primeira variável de ambiente no Bash!
Configuração de variáveis de ambiente permanentes em Bash
Quando atribui um valor a uma variável usando “exportar” numa shell, as alterações não persistem em reinicializações ou a outras shells.
Para definir uma variável de ambiente permanente em Bash, tem de usar o comando de exportação e adicioná-la ou ao seu ficheiro “.bashrc” (se esta variável for apenas para si) ou ao ficheiro /etc/environment se quiser que todos os utilizadores tenham esta variável de ambiente.
$ nano /home/user/.bashrc# Content of the .bashrc fileexport VAR="My permanent variable"
Para as alterações a serem aplicadas à sua sessão actual, terá de obter o seu ficheiro .bashrc file.
$ source .bashrc
Agora, pode verificar o valor da variável do seu ambiente em cada shell que desejar.
$ printenv VAR
Esta variável será criada em cada instância da shell para o utilizador actual.
Contudo, se a adicionar ao ficheiro “/etc/environment”, a variável de ambiente será definida para todos os utilizadores no seu sistema.
$ nano /etc/environment# Content of the environment fileexport GLOBAL="This is a global variable"
Após a aquisição do ficheiro, as variáveis de ambiente serão definidas para cada utilizador no seu anfitrião.
$ source /etc/environment$ echo $GLOBAL
Awesome, definiu com sucesso uma variável de ambiente global no seu servidor!
Conclusion
Neste tutorial, aprendeu como pode facilmente definir variáveis de ambiente no Bash usando o comando de exportação.
Também aprendeu que as alterações não são permanentes até as adicionar ao seu :
- .bashrc : se quiser que a variável seja apenas para o utilizador actual com sessão iniciada;
- /etc/environment : se quiser que a variável seja partilhada por todos os utilizadores do sistema.
Se estiver interessado na Administração do Sistema Linux, ou no Bash, temos uma secção completa dedicada a ela no website, por isso não deixe de a verificar!