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
- No confundirlos con los valores de la lógica clásica: verdadero (true, 1 o T) y falso (false, 0 o ⊥).
Referencias
- «Colon», The Open group base specifications, issue 7, IEEE std 1003.1-2008.
- 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
- Wikilibros en inglés alberga un libro o manual sobre Commands.
- true: return true value – Comandos y utilidades Referencia, Single Unix Specification, Issue 7 de The Open Group
- false: return false value – Comandos y utilidades Referencia, Single Unix Specification, Issue 7 de The Open Group