Tornando as Variáveis de Ambiente Persistentes
Até agora, definimos variáveis de ambiente que duram apenas a sessão atual do terminal. Depois de fechar o terminal ou sair, essas variáveis são perdidas. Nesta etapa, você aprenderá como tornar as variáveis de ambiente persistentes em todas as sessões.
Armazenando Variáveis de Ambiente em Arquivos de Configuração
Existem vários arquivos onde você pode definir variáveis de ambiente para torná-las persistentes:
~/.bashrc ou ~/.zshrc: Para variáveis específicas de um usuário
/etc/environment: Para variáveis em todo o sistema
/etc/profile ou arquivos em /etc/profile.d/: Para variáveis em todo o sistema carregadas no login
Vamos adicionar algumas variáveis de ambiente ao arquivo de configuração do shell do seu usuário. Como este ambiente de laboratório usa ZSH, editaremos o arquivo ~/.zshrc:
nano ~/.zshrc
Role até o final do arquivo e adicione as seguintes linhas:
## Custom environment variables
export EDITOR="nano"
export CUSTOM_PATH="$HOME/bin"
export GREETING="Hello from .zshrc!"
Salve o arquivo (pressione Ctrl+O, depois Enter) e saia do nano (pressione Ctrl+X).
Para aplicar essas alterações à sua sessão atual, você precisa executar o arquivo:
source ~/.zshrc
Agora, verifique se as variáveis estão definidas:
echo $EDITOR
echo $CUSTOM_PATH
echo $GREETING
Você deve ver os valores que você definiu no arquivo .zshrc.
Essas variáveis de ambiente estarão agora disponíveis toda vez que você iniciar uma nova sessão de shell.
Criando um Arquivo de Variáveis de Ambiente Personalizado
Uma boa prática para gerenciar variáveis de ambiente é criar um arquivo separado apenas para elas, especialmente para variáveis específicas do projeto. Isso facilita o gerenciamento e o compartilhamento de configurações.
Vamos criar um arquivo chamado .env no diretório do seu projeto:
cd ~/project
nano .env
Adicione o seguinte conteúdo:
## Project environment variables
export PROJECT_NAME="Linux Environment Lab"
export PROJECT_VERSION="1.0.0"
export DEBUG_MODE="true"
Salve o arquivo (pressione Ctrl+O, depois Enter) e saia do nano (pressione Ctrl+X).
Para carregar essas variáveis na sua sessão atual, execute o arquivo:
source ~/project/.env
Agora, verifique se as variáveis estão definidas:
echo $PROJECT_NAME
echo $PROJECT_VERSION
echo $DEBUG_MODE
Você deve ver os valores do arquivo .env.
Criando um Script para Carregar Variáveis de Ambiente
Finalmente, vamos criar um script que carrega variáveis de ambiente de um arquivo. Este é um padrão comum em ambientes de desenvolvimento:
cd ~/project
nano load_env.sh
Adicione o seguinte conteúdo:
#!/bin/bash
## Script to load environment variables from a .env file
ENV_FILE=".env"
if [[ -f "$ENV_FILE" ]]; then
echo "Loading environment variables from $ENV_FILE"
## Read each line from the .env file
while IFS= read -r line || [[ -n "$line" ]]; do
## Skip comments and empty lines
if [[ $line =~ ^## ]] || [[ -z $line ]]; then
continue
fi
## Export the variable if it starts with "export "
if [[ $line == export* ]]; then
## Remove the "export " prefix and export the variable
eval "${line}"
echo "Exported: ${line#export }"
fi
done < "$ENV_FILE"
echo "Environment variables loaded successfully"
else
echo "Error: $ENV_FILE file not found"
exit 1
fi
Salve o arquivo (pressione Ctrl+O, depois Enter) e saia do nano (pressione Ctrl+X).
Torne o script executável:
chmod +x ~/project/load_env.sh
Agora, desfaça a definição das variáveis que definimos anteriormente e, em seguida, execute o script para carregá-las novamente:
unset PROJECT_NAME PROJECT_VERSION DEBUG_MODE
echo "PROJECT_NAME: $PROJECT_NAME"
## Now load the variables using the script
~/project/load_env.sh
## Check if the variables are now set
echo "PROJECT_NAME: $PROJECT_NAME"
O script lê o arquivo .env e exporta cada variável definida com a palavra-chave export.
Essa abordagem é comumente usada em ambientes de desenvolvimento para gerenciar variáveis de ambiente específicas do projeto.