Variable ambiental


Una variable de entorno es un valor con nombre dinámico que puede afectar la forma en que los procesos en ejecución se comportarán en una computadora. Son parte del entorno en el que se ejecuta un proceso. Por ejemplo, un proceso en ejecución puede consultar el valor de la variable de entorno TEMP para descubrir una ubicación adecuada para almacenar archivos temporales , o la variable HOME o USERPROFILE para encontrar la estructura de directorio propiedad del usuario que ejecuta el proceso.

Fueron introducidos en su forma moderna en 1979 con la versión 7 de Unix , por lo que se incluyen en todos los sabores y variantes del sistema operativo Unix desde ese punto en adelante, incluidos Linux y macOS . Desde PC DOS 2.0 en 1982, todos los sistemas operativos sucesivos de Microsoft , incluido Microsoft Windows y OS / 2, también los han incluido como una característica, aunque con una sintaxis, uso y nombres de variables estándar algo diferentes.

En todos los Unix y Unix-como sistemas, así como en Windows, cada proceso tiene su propio conjunto independiente de medio ambiente las variables . De forma predeterminada, cuando se crea un proceso, hereda un entorno de tiempo de ejecución duplicado de su proceso padre, excepto por los cambios explícitos realizados por el padre cuando crea el hijo. A nivel de API , estos cambios deben realizarse entre la ejecución forky exec. Alternativamente, desde shells de comando como bash , un usuario puede cambiar las variables de entorno para una invocación de comando en particular invocándolo indirectamente a través de envo usando elENVIRONMENT_VARIABLE=VALUE <command>notación. Un programa en ejecución puede acceder a los valores de las variables de entorno con fines de configuración.

Los scripts de shell y los archivos por lotes utilizan variables de entorno para comunicar datos y preferencias a los procesos secundarios . También se pueden usar para almacenar valores temporales para referencia más adelante en un script de shell. Sin embargo, en Unix, se prefieren las variables no exportadas para esto, ya que no se filtran fuera del proceso.

En Unix, una variable de entorno que se cambia en un script o programa compilado solo afectará a ese proceso y posiblemente a los procesos secundarios. El proceso principal y los procesos no relacionados no se verán afectados. De manera similar, cambiar o eliminar el valor de una variable dentro de un archivo por lotes de DOS cambiará la variable mientras dure COMMAND.COMsu existencia.

En Unix, las variables de entorno normalmente se inicializan durante el inicio del sistema por el sistema init scripts de inicio , y por lo tanto heredados por todos los otros procesos en el sistema. Los usuarios pueden, y a menudo lo hacen, aumentarlos en el script de perfil para el shell de comandos que están usando. En Microsoft Windows, el valor predeterminado de cada variable de entorno se almacena en el registro de Windows o se establece en el AUTOEXEC.BATarchivo.