Uma variável de ambiente é um valor nomeado dinamicamente que pode afetar o modo como os processos em execução irão se comportar em um computador.
Elas são parte do ambiente no qual um processo executa. Por exemplo, um processo em execução pode consultar o valor da variável de ambiente TEMP para descobrir um local adequado para armazenar arquivos temporários, ou a variável HOME ou USERPROFILE para encontrar a estrutura de diretórios pertencente ao usuário que está executando o processo. Desta forma, elas podem afetar a forma como um processo se comporta, e cada processo pode ler e escrever variáveis de ambiente.
Elas foram introduzidas em sua forma moderna em 1979 com o Unix Versão 7, desta forma foram incluídas em todos os tipos e variantes de sistema operacional Unix a partir daquele ponto em diante incluindo o Linux e macOS. A partir do PC-DOS 2.0 em 1982, todos os sistemas operacionais Microsoft posteriores, incluindo o Microsoft Windows e OS/2, também incluíram as variáveis de ambiente como um recurso, apesar de que com uma sintaxe, utilização e nomes padrões de variáveis um pouco diferentes.
Design Em todos os sistemas Unix e Unix-like, cada processo possui seu conjunto privado de variáveis de ambiente. Por padrão, quando um processo é criado ele herda uma cópia das variáveis de ambiente do processo pai, exceto por mudanças explícitas feitas pelo pai quando o novo processo é criado (entre as chamadas fork e exec). Todos os tipos de Unix assim como o DOS e o Microsoft Windows possuem variáveis de ambiente; entretanto, variáveis para funções parecidas entre os sistemas possuem nomes distintos. Programas podem acessar os valores das variáveis de ambiente para efeitos de configuração.
Shell scripts e arquivos de lote usam variáveis de ambiente para armazenar dados temporários e também para comunicar dados e preferências a processos filhos.
No Unix, as variáveis de ambiente são normalmente inicializadas durante a inicialização do sistema, e portanto é herdada por todos os outros processos do sistema. No Microsoft Windows, os valores padrão das variáveis de ambiente são armazenados no registro do sistema e configurados através do autoexec.bat.
Acesso As variáveis podem ser usadas tanto por scripts quanto pela linha de comando. São geralmente referenciadas usando-se símbolos especiais na frente ou nas extremidades no nome da variável. Por exemplo, para mostrar o caminho de busca em um sistema DOS ou Windows, usa-se o comando echo %PATH%, em Unix usa-se echo $PATH.
Em DOS e Windows o comando SET sem argumentos lista as variáveis de ambiente disponíveis e seus valores. Para escrever um valor, usa-se SET VARIAVEL=novo_valor. Entretanto, a mudança é temporária, e para ser permanente deve-se editar o registro do sistema. Já em Unix, os comandos env, set e printenv listam as variáveis de ambiente disponíveis e seus valores. env e set também são usadas para escrever valores.
Variáveis de ambiente comuns DOS %COMSPEC% - caminho completo do command.com. %PATH% - lista de diretórios que são acessos durante uma busca do shell, por exemplo, para comandos globais do sistema (executáveis fora da pasta corrente). %TEMP% e %TMP% - caminho para o diretório em que o sistema operacional armazena arquivos temporários.
Unix $PATH - lista de diretórios que são acessados durante uma busca do shell, por exemplo, para comandos globais do sistema (executáveis fora da pasta corrente). $HOME - diretório raiz do usuário atual. $LANG, $LC_ALL - locale padrão. TERM - tipo do terminal ou emulador de terminal sendo usado. $TZ - fuso horário em uso.
Windows
%CD% - diretório atual. %DATE% - data atual, formatada de acordo com a preferência do utilizador. %TIME% - hora atual, formatada de acordo com a preferência do utilizador. %RANDOM% - número aleatório entre 0 e 32767. %ProgramFiles% - caminho completo do diretório "Arquivos de programas". %SystemDrive% - drive de instalação do sistema operacional. %systemroot% - diretório de instalação do sistema operacional. %WinDir% - diretório de instalação do sistema operacional. %SystemDirectory% - diretório de instalação da pasta system32. %USERNAME% - o nome do usuário logado. %HomePath% - diretório do usuário logado(sem o drive). %HomeDrive% - drive do diretório do usuário logado. %TEMP% - diretório temporário do usuário logado. %Tmp% - diretório temporário do usuário logado. - O nome do controlador de domínio onde o usuário está autenticado. %UserDomain% - O nome do domínio que detém a conta do usuário. %ComSpec% - diretório onde se encontra o comando (cmd.exe) - prompt do ms-dos. %ComputerName% - Exibe o nome do computador atual. %userprofile% - diretório de arquivos do usuário logado. %PUBLIC% - diretório de arquivos público
Categoria:Tecnologia dos sistemas operacionais Categoria:Programação