Ir al contenido

env

De Mexpedia

env es un comando del sistema operativo Unix y los sistemas tipo Unix. Es usado para mostrar una lista de las variables de entorno y para ejecutar otro programa con las variables de entorno modificadas sin tener que modificar las variables de entorno del equipo. Usando el comando env se pueden añadir y eliminar variables, además de poder modificar el valor de las variables actuales.

En la práctica, el comando env a menudo es utilizado por los scripts del shell para lanzar el intérprete correcto. En este uso las variables de entorno no son modificadas.

env está estandarizado por POSIX, dentro de la Single Unix Specification.[1]

El único parámetro definido por POSIX es -i;[1] los demás son extensiones, comunes (como -u) o propias de GNU coreutils.[2]

-i, --ignore-environment
Ejecuta el COMANDO con un entorno vacío, ignorando las variables heredadas.
-u, --unset=NOMBRE
Elimina la variable NOMBRE del entorno (extensión a POSIX, presente también en BSD).
-0, --null
Termina cada línea de salida con un byte nulo (NUL) en lugar de un salto de línea (extensión de GNU).
-C, --chdir=DIR
Cambia el directorio de trabajo a DIR antes de ejecutar el COMANDO (extensión de GNU).
-S, --split-string=CADENA
Divide CADENA en argumentos separados; útil para pasar varios argumentos en la línea shebang de un script (extensión de GNU).
-a, --argv0=ARG
Pasa ARG como argumento cero (argv[0]) del COMANDO (extensión de GNU).
-v, --debug
Muestra información detallada de cada paso del procesamiento (extensión de GNU).

GNU coreutils añade además opciones para gestionar señales (--block-signal, --default-signal, --ignore-signal, --list-signal-handling). Un guion suelto (-) equivale a -i y es una forma histórica.

Para limpiar todas las variables del entorno (crear un nuevo entorno sin ninguna variable de entorno) para una nueva shell:

env -i /bin/sh

Para lanzar la aplicación X Window xcalc y hacer que aparezca en una pantalla diferente:

env DISPLAY=foo.bar:1.0 xcalc

Este es el código de un script en Python muy simple:

#!/usr/bin/env python3
print("Hello World.")

En este ejemplo, /usr/bin/env es la ruta completa del comando env. El entorno no se altera.

Referencias

[editar | editar código]
  1. ↑ 1,0 1,1 «env». The Open Group Base Specifications Issue 7, edición 2018. The Open Group. Consultado el 22 de junio de 2026. 
  2. ↑ «env: Run a command in a modified environment». GNU Coreutils Manual. Free Software Foundation. Consultado el 22 de junio de 2026. 

Enlaces externos

[editar | editar código]