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.
Opciones El único parámetro definido por POSIX es -i; los demás son extensiones, comunes (como -u) o propias de GNU coreutils.
-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) 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.
Ejemplos 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
Enlaces externos env - página del manual GNU coreutils ( en inglés). env(1) página del manual de GNU coreutils (en castellano).
Categoría:Utilidades Unix SUS2008 Categoría:Programas del estándar Unix