Hubbry Logo
search button
Sign in
True and false (commands)
True and false (commands)
Comunity Hub
History
arrow-down
starMore
arrow-down
bob

Bob

Have a question related to this hub?

bob

Alice

Got something to say related to this hub?
Share it here.

#general is a chat channel to discuss anything related to the hub.
Hubbry Logo
search button
Sign in
True and false (commands)
Community hub for the Wikipedia article
logoWikipedian hub
Welcome to the community hub built on top of the True and false (commands) Wikipedia article. Here, you can discuss, collect, and organize anything related to True and false (commands). The purpose of the...
Add your contribution
True and false (commands)
true
Initial releaseJanuary 1979; 46 years ago (1979-01)
Operating systemUnix and Unix-like
PlatformCross-platform
TypeCommand

true and false are shell commands that exit immediately with exit status 1 or 0, respectively. As a script sets its process exit status to the value of the last command it runs, these commands can be used to set the exit status of a script run. As the typical convention for exit status is that zero means success and non-zero means failure, true sets the exit status to failure and false sets the exit status to success.[Note 1]

The commands are available in Unix-like operating systems.

Use

[edit]

The commands are usually employed in conditional statements and loops of shell scripts. For example, the following script repeatedly executes echo hello until interrupted:

while true
do
  echo hello
done

The commands can be used to ignore the success or failure of a sequence of other commands, as in the example:

make  && false

Setting a user's login shell to false, in /etc/passwd, effectively denies them access to an interactive shell, but their account may still be valid for other services, such as FTP. (Although /sbin/nologin, if available, may be more fitting for this purpose, as it prints a notification before terminating the session.)

The programs accept no command-line arguments except that the GNU version accepts the typical --help and --version options.

Null command

[edit]

The true command is sometimes substituted with the very similar null command,[1] written as a single colon (:). The null command is built into the shell, and may therefore be more efficient if true is an external program (true is usually a shell built in function). We can rewrite the upper example using : instead of true:

while :
do
  echo hello
done

The null command may take parameters, which are ignored. It is also used as a no-op dummy command for side-effects such as assigning default values to shell variables through the ${parameter:=word} parameter expansion form.[2] For example, from bashbug, the bug-reporting script for Bash:

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

See also

[edit]

Notes

[edit]
  1. ^ These are distinct from the truth values of classical logic and most general purpose programming languages: true (1 or T) and false (0 or ⊥).

References

[edit]
  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, retrieved 2011-08-04
[edit]

Manual pages

[edit]