true y false

En los sistemas operativos tipo Unix, true y false son comandos cuya única función es regresar siempre con un estado de salida predeterminado. Los programadores y los scripts suelen utilizar el estado de salida de un comando para evaluar el éxito (estado de salida cero) o el fracaso (distinto de cero) del comando. Los comandos true y false representan los valores lógicos de éxito del comando, ya que true devuelve 0 y false devuelve 1.[Nota 1]

true / false
Parte de GNU Core Utilities
Información general
Tipo de programa Orden
Lanzamiento inicial 1 de enero de 1979 (44 años, 7 meses y 26 días)
Información técnica
Plataformas admitidas Multiplataforma

Uso

Los comandos suelen emplearse en sentencias condicionales y bucles de scripts de shell. Por ejemplo, el siguiente script de shell repite el bucle echo hola hasta que se interrumpe:

while true
do
  echo hola
done

Los comandos se pueden utilizar para ignorar el éxito o el fracaso de una secuencia de otros comandos, como en el ejemplo:

make  && false

Si se establece el shell de inicio de sesión de un usuario en false, en /etc/passwd, se le deniega el acceso a un shell interactivo, pero su cuenta puede seguir siendo válida para otros servicios, como FTP (Aunque /sbin/nologin, si está disponible, puede ser más adecuado para este propósito, ya que imprime una notificación antes de terminar la sesión).

Los programas no toman parámetros "reales"; en la versión GNU, el parámetro estándar --help muestra un resumen de uso y --version muestra la versión del programa.

Comando nulo

El comando true es a veces sustituido por el comando null que es muy similar,[1] escrito como dos puntos (:). El comando null está integrado en el intérprete de comandos y, por lo tanto, puede ser más eficiente si true es un programa externo (true suele ser una función integrada en el intérprete de comandos). Podemos reescribir el ejemplo superior utilizando : en lugar de true:

while :
do
  echo hola
done

El comando null puede tomar parámetros, los cuales son ignorados. También se utiliza como comando ficticio no-op para efectos secundarios tales como asignar valores por defecto a variables de entorno a través de la forma de expansión de parámetros ${parameter:=word}.[2] Un ejemplo en Bash:

 : ${TMPDIR:=/tmp}
 : ${EDITOR=$DEFEDITOR}
 : ${USER=${LOGNAME-`whoami`}}

Véase también

Notas

  1. No confundirlos con los valores de la lógica clásica: verdadero (true, 1 o T) y falso (false, 0 o ⊥).

Referencias

  1. «Colon», The Open group base specifications, issue 7, IEEE std 1003.1-2008.
  2. Cooper, Mendel (April 2011), «Null command», Advanced Bash-scripting guide, 6.3, The Linux documentation project, consultado el 4 de agosto de 2011.

Enlaces externos

Páginas del manual

  • true(1): No hacer nada, con éxito - GNU Coreutils reference
  • false(1): No hacer nada, sin éxito - Referencia GNU Coreutils
  • true(1): Devuelve un valor verdadero - Página del manual de FreeBSD
  • false(1): Devuelve un valor falso - Página del manual de FreeBSD
Este artículo ha sido escrito por Wikipedia. El texto está disponible bajo la licencia Creative Commons - Atribución - CompartirIgual. Pueden aplicarse cláusulas adicionales a los archivos multimedia.