Tudo sobre o comando Linux export: Definir uma variável de ambiente com facilidade

Tudo sobre o comando Linux export: entenda como definir uma variável de ambiente de forma simples e prática.

Tudo sobre o comando Linux export: Definir uma variável de ambiente com facilidade
Tudo sobre o comando Linux export: Definir uma variável de ambiente com facilidade

No Linux, o comando export define variáveis de ambiente, que são valores nomeados que influenciam o comportamento de programas e processos, tornando-as acessíveis a scripts e aplicações filhas.

No Linux, o comando export é essencial para definir variáveis de ambiente que ampliam o controle sobre aplicações e scripts. Vamos descobrir como utilizá-lo e suas vantagens.

O que é o comando export no Linux?

O comando export, no Linux, é uma instrução embutida do shell (como Bash, Zsh, etc.) que serve para definir variáveis de ambiente. Essas variáveis são valores nomeados que influenciam o comportamento de programas e processos no sistema. Pense nelas como configurações globais acessíveis por diferentes aplicações.

Para que serve uma variável de ambiente?

Imagine que você precisa configurar o editor de texto vim para usar um tema de cores específico. Em vez de configurar isso individualmente cada vez que abre o vim, você pode definir uma variável de ambiente chamada EDITOR com suas preferências. Assim, o vim (e outros programas) podem ler essa variável e se adaptar automaticamente.

O export torna essas variáveis disponíveis não apenas para o shell atual, mas também para qualquer processo filho que seja iniciado a partir dele. Isso significa que se você executar um script a partir do seu terminal, esse script herdará as variáveis de ambiente que você exportou.

Diferença entre variáveis locais e de ambiente

É importante entender a diferença entre variáveis locais e de ambiente. Variáveis locais existem apenas dentro do shell ou script onde foram definidas. Já as variáveis de ambiente, graças ao export, têm um escopo mais amplo, sendo visíveis para processos filhos.

Um exemplo prático é a variável PATH. Ela contém uma lista de diretórios onde o sistema procura por comandos executáveis. Quando você digita um comando no terminal, o shell percorre os diretórios listados em PATH procurando o arquivo correspondente. O PATH é uma variável de ambiente crucial para o funcionamento do sistema.

Como definir variáveis de ambiente com export

Definir variáveis de ambiente com o comando export é simples e direto. A sintaxe básica é:

export NOME_DA_VARIAVEL=VALOR

Onde NOME_DA_VARIAVEL é o nome que você quer dar à variável e VALOR é o valor que ela irá armazenar. Por exemplo, para definir a variável EDITOR com o valor vim, você usaria:

export EDITOR=vim

Importante: Não use espaços ao redor do sinal de igualdade (=).

Exemplos práticos

Vamos explorar alguns exemplos práticos para ilustrar diferentes cenários:

  • Definindo o idioma do sistema:
    export LANG=pt_BR.UTF-8
  • Configurando um diretório de trabalho:
    export WORKDIR=/home/usuario/projetos
  • Adicionando um diretório ao PATH:
    export PATH=$PATH:/home/usuario/binNeste caso, estamos adicionando o diretório /home/usuario/bin ao PATH existente. O $PATH no início garante que os diretórios já presentes no PATH sejam preservados.

Exportando variáveis em scripts

Dentro de um script Bash, você pode usar o export da mesma forma para definir variáveis de ambiente que serão herdadas por processos filhos do script. Isso é útil para configurar o ambiente de execução de comandos dentro do script.

#!/bin/bash\nexport VARIAVEL_DO_SCRIPT=valor\n# ... restante do script

Ao usar o export dentro de um script, lembre-se que as variáveis de ambiente só serão propagadas para processos iniciados *pelo script*. As variáveis não afetarão o shell que executou o script.

Utilidades do export em scripts Bash

O comando export é crucial para tornar scripts Bash mais flexíveis e poderosos. Ele permite configurar o ambiente de execução de comandos dentro do script, além de passar informações entre diferentes scripts.

Configurando o ambiente

Ao usar export dentro de um script, você define variáveis que influenciam o comportamento de comandos executados posteriormente no mesmo script. Isso é útil para:

  • Definir opções de programas:
    export GREP_OPTIONS='--color=auto'Este comando configura o grep para destacar os resultados da busca com cores.
  • Controlar o comportamento de bibliotecas: Algumas bibliotecas leem variáveis de ambiente para ajustar suas configurações.
  • Passar informações para comandos:
    export API_KEY="SUA_CHAVE_AQUI"Você pode armazenar informações sensíveis, como chaves de API, em variáveis de ambiente e acessá-las dentro do script de forma segura, evitando que sejam expostas diretamente no código.

Comunicação entre scripts

Variáveis de ambiente exportadas por um script pai são herdadas por scripts filhos. Isso permite uma forma de comunicação entre scripts, onde o script pai pode configurar o ambiente para o script filho.

#!/bin/bash
# script_pai.sh
export VARIAVEL_COMPARTILHADA="Informação importante"
./script_filho.sh

No exemplo acima, script_filho.sh terá acesso à VARIAVEL_COMPARTILHADA. Isso facilita a modularização de scripts e a reutilização de código.

Boas práticas

Ao usar export em scripts Bash, considere estas boas práticas:

  • Use nomes descritivos: Facilita a compreensão do propósito da variável.
  • Evite sobrescrever variáveis importantes: Verifique se o nome da variável já não está sendo usado para outra finalidade.
  • Use aspas para valores com espaços: Evita erros de interpretação.

Como verificar variáveis de ambiente definidas

Após definir variáveis de ambiente com export, é útil saber como verificá-las. Existem algumas maneiras de fazer isso:

Usando o comando echo

O comando echo, combinado com a sintaxe $NOME_DA_VARIAVEL, exibe o valor de uma variável específica. Por exemplo:

echo $EDITOR
echo $HOME

Isso imprimirá o valor das variáveis EDITOR e HOME, respectivamente. Se a variável não estiver definida, echo imprimirá uma linha em branco.

Usando o comando printenv

O comando printenv lista todas as variáveis de ambiente definidas no shell atual. Você pode usá-lo sem argumentos para listar todas as variáveis ou especificar uma variável para ver apenas o seu valor:

printenv
printenv EDITOR

Usando o comando env

Similar ao printenv, o comando env também lista as variáveis de ambiente. Ele é mais versátil, permitindo executar um comando em um ambiente modificado, mas para simplesmente listar as variáveis, seu uso é basicamente o mesmo que printenv:

env

A vantagem do env é sua capacidade de modificar o ambiente para um comando específico, o que não é o foco deste tópico, mas é uma ferramenta poderosa para se conhecer.

Usando o comando `declare -x`

O comando declare -x lista apenas as variáveis que foram explicitamente exportadas com o comando `export`. Isso ajuda a filtrar as variáveis de ambiente das variáveis locais do shell.

declare -x

Erros comuns ao usar o comando export

Embora o comando export seja simples, alguns erros comuns podem ocorrer:

Usar espaços ao redor do sinal de igual

Incorreto:

export VARIAVEL = valor

Correto:

export VARIAVEL=valor

Espaços ao redor do sinal de igualdade fazem com que o shell interprete VARIAVEL como um comando e = e valor como argumentos, resultando em um erro.

Esquecer de exportar

Definir uma variável sem usar export a torna uma variável local, não uma variável de ambiente. Ela não estará disponível para processos filhos.

VARIAVEL=valor # Variável local
export VARIAVEL=valor # Variável de ambiente

Modificar o PATH incorretamente

Ao adicionar um diretório ao PATH, é crucial incluir o $PATH no início para preservar os diretórios existentes:

export PATH=$PATH:/novo/diretorio

Se você fizer export PATH=/novo/diretorio, o PATH conterá apenas /novo/diretorio, e outros comandos importantes podem se tornar inacessíveis.

Usar aspas incorretamente

Para valores com espaços, use aspas duplas:

export VARIAVEL="valor com espaços"

Aspas simples não permitem a expansão de variáveis dentro da string.

Exportar em scripts sem efeito

Lembre-se que variáveis exportadas dentro de um script só afetam os processos filhos *desse script*. Elas não modificam as variáveis de ambiente do shell que executou o script. Para modificar o ambiente do shell atual a partir de um script, você precisa fazer o source do script (também conhecido como .):

source meu_script.sh

Dominando o export

O comando export é uma ferramenta fundamental no Linux para gerenciar variáveis de ambiente. Compreender seu funcionamento e evitar os erros comuns garante um controle mais preciso sobre o ambiente de execução de seus scripts e aplicações. Com a prática, você integrará o export ao seu fluxo de trabalho, tornando-o um aliado poderoso na administração do seu sistema.

Emanuel Negromonte Autor
Autor
Jornalista especialista em Linux a mais de 20 anos. Fundador do SempreUpdate e entusiasta do software livre.