Una variable de entorno define algún aspecto del entorno de un usuario o de un programa que puede variar. Generalmente establecida durante el procedimiento de inicio de sesión, para un usuario, la variable de entorno establece algún componente del entorno de trabajo del usuario, como la impresora predeterminada, el navegador o el editor de texto que se utilizará. Debido a que estos están preestablecidos como valores específicos para el usuario identificado, ahorran tiempo que se usaría seleccionándolos en cada inicio de sesión. Las variables de entorno se utilizan en varios idiomas y sistemas operativos para proporcionar información a las aplicaciones que pueden ser específicas de la solicitud del usuario.
El shell de UNIX utiliza variables de entorno para enviar información sobre el entorno del usuario (como el directorio de trabajo actual o el tipo de terminal, por ejemplo) a los programas que se están ejecutando. Las definiciones de las variables se pasan a cualquier programa que no esté integrado en el shell, y el programa puede consultarlas o modificarlas. Por ejemplo, "TERM" (las variables de entorno se expresan en mayúsculas por convención de programación) define el tipo de terminal utilizado, "PATH" define los directorios en los que se buscarán los programas correspondientes a los nombres de los comandos y "USER" define el usuario en particular, para que se puedan comprobar los permisos de acceso para cada solicitud.
La interfaz de puerta de enlace común (CGI) utiliza variables de entorno que se establecen cuando el servidor ejecuta el programa de puerta de enlace, para pasar información sobre las solicitudes del servidor al script. El servidor envía definiciones de variables de entorno como "SERVER_SOFTWARE", que identifica el nombre y la versión del software del servidor que responde; "SERVER_NAME", que identifica el nombre de host del servidor, el alias DNS o la dirección de Protocolo de Internet (IP); y "GATEWAY_INTERFACE", que identifica la especificación CGI utilizada. Estas variables de entorno no son específicas de la solicitud y se envían con cada solicitud. Otras variables de entorno son específicas del tipo de solicitud que se envía, como "SERVER_PROTOCOL", que identifica el nombre y la revisión del protocolo utilizado para la solicitud, y "REQUEST_METHOD", que identifica el método utilizado para la solicitud.