Variable ambiental


Una variable de entorno es un valor con nombre dinámico que puede afectar la forma en que se comportarán los procesos en ejecución en una computadora. Forman 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.

Se introdujeron en su forma moderna en 1979 con la versión 7 de Unix , por lo que se incluyen en todas las versiones y variantes del sistema operativo Unix a partir de ese momento, incluidos Linux y macOS . Desde PC DOS 2.0 en 1982, todos los sistemas operativos posteriores de Microsoft , incluido Microsoft Windows y OS/2 , también las han incluido como una característica, aunque con una sintaxis, uso y nombres de variables estándar algo diferentes.

En todos los sistemas Unix y similares a Unix, así como en Windows, cada proceso tiene su propio conjunto separado de variables de entorno . De forma predeterminada, cuando se crea un proceso, hereda un entorno de tiempo de ejecución duplicado de su proceso principal, excepto por los cambios explícitos realizados por el principal cuando crea el secundario. A nivel de API , estos cambios deben realizarse entre ejecutar forky exec. Alternativamente, desde shells de comandos 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 posterior 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 modifica en un script o programa compilado solo afectará a ese proceso y posiblemente a los procesos secundarios. El proceso principal y cualquier proceso no relacionado 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 COMMAND.COMexista.

En Unix, las variables de entorno normalmente se inicializan durante el inicio del sistema mediante los scripts de inicio del sistema y, por lo tanto, las heredan todos los demás procesos del sistema. Los usuarios pueden, ya menudo lo hacen, aumentarlos en la secuencia de comandos de perfil para el shell de comandos que están utilizando. 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.