true a false (Unix)
V systémech unixového typu jsou true
a false
takové příkazy, jejichž návratová hodnota je vždy 0 resp. 1.
Shell interpretuje 0 (úspěch) resp. 1 (chyba) jako pravdivostní hodnotu. Toho se často využívá v shellových skriptech k tvorbě podmíněný výrazů a cyklů, v nichž jsou řídící podmínky dány návratovou hodnotou spouštěného programu. Například následující skript neustále vypisuje textový řetězec hello
:
while true
do
echo hello
done
Dalším využitím je tvorba sekvence příkazů, která vždy selže (vždy vrátí nenulovou hodnotu):
make … && false
Nastavení uživatelova přihlašovacího shellu na false (v /etc/passwd
) mu odepře možnost přihlášení k shellu. Jeho účet však zůstane aktivní a bude moci využívat ostatní služby jako např. FTP.
Programy nemají žádné parametry. Pouze v některých variantách reagují na standardní parametry --help
a --version
.
Příkaz true může být také zapsán jako dvojtečka :
. V tomto tvaru je zpravidla implementován jako vestavěná funkce shellu a je používán jako krátká varianta true
while :; do …; done
nebo jako pomocný prázdný příkaz pro přiřazení hodnoty do proměnné s využitím rozvoje parametru[1]:
: ${TMPDIR:=/tmp}
: ${EDITOR=$DEFEDITOR}
: ${USER=${LOGNAME-`whoami`}}
Související články
Reference
V tomto článku byl použit překlad textu z článku True and false (Unix) na anglické Wikipedii.
- Shell Command Language: 2.6.2 Parameter Expansion – The Open Group Base Specifications Issue 6, IEEE Std 1003.1, 2004 Edition
Externí odkazy
- (anglicky) true(1) v manuálu GNU Core Utilities
- (anglicky) false(1) v manuálu GNU Core Utilities