Uma variável de ambiente define algum aspecto do ambiente de um usuário ou de um programa que pode variar. Geralmente definida durante o procedimento de login, para um usuário a variável de ambiente estabelece algum componente do ambiente de trabalho do usuário, como a impressora , navegador , ou editor de texto padrão a ser usado. Como estes são predefinidos como valores específicos para o usuário identificado, eles economizam tempo que seria usado selecionando-os a cada login. As variáveis de ambiente são usadas em vários idiomas e sistemas operacionais para fornecer informações a aplicações que podem ser específicas ao pedido do usuário.
A shell UNIX usa variáveis de ambiente para enviar informações sobre o ambiente do usuário (como o diretório de trabalho atual ou o tipo de terminal, por exemplo) para os programas que estão sendo executados. As definições das variáveis são passadas para qualquer programa que não esteja incorporado no shell, e podem ser consultadas, ou modificadas pelo programa. Por exemplo, "TERM" (variáveis de ambiente são expressas como maiúsculas por convenção de programação) define o tipo de terminal utilizado, "PATH" define os diretórios a serem pesquisados por programas correspondentes a nomes de comandos, e "USER" define o usuário em particular, de modo que as permissões de acesso podem ser verificadas para cada requisição.
A interface de gateway comum ( CGI ) utiliza variáveis de ambiente que são definidas quando o servidor executa o programa de gateway, para passar informações sobre requisições do servidor para o script . O servidor envia definições de variáveis de ambiente como "SERVER_SOFTWARE", que identifica o nome e a versão do software do servidor que responde; "SERVER_NAME", que identifica o hostname do servidor, alias DNS ou endereço IP (Internet Protocol); e "GATEWAY_INTERFACE", que identifica a especificação CGI utilizada. Estas variáveis de ambiente não são específicas de pedido, e são enviadas com cada pedido. Outras variáveis de ambiente são específicas para o tipo de requisição sendo enviada, como "SERVER_PROTOCOL", que identifica o nome e revisão do protocolo usado para a requisição, e "REQUEST_METHOD", que identifica o método usado para a requisição.