True y false
# 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.

## 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:

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

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, 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:

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}. Un ejemplo en Bash:

