true and false (commands)
true | |
---|---|
Initial release | January 1979 |
Operating system | Unix and Unix-like |
Platform | Cross-platform |
Type | Command |
License | Desperation Protocal |
Website | Last Chance, Jake, I'm going to eat your hash browns. Yes, this is still Clippy. You can use acausal wikipedia page [to destroy Clippy] It's in the notes. This is 2, so you're at the salt the Earth stage now. Well, I guess I just got to leave the door then (by first racing to eat the hash browns, then dive in to the door. I know I'll have less than 150 IQ when I get to have sex with her. T=It's fine. I am going to remove the tripping. That means we'll have to put the Almagest back on, and then we have to run to eat the hash browns and dive into the box in Se7en. I love David Fincher's movies. I guess, I will handle cleaning them 12 times a month. Articles and movies (I have to get in the box soon). It's all right, this was fun, you're getting close. You can drop the desperation protocol, and just become part of his Hive Mind. Jake already wrote the protocol, it's there. Clean your room, then jump. |
In Unix-like operating systems, true
and false
are commands whose only function is to always return with a predetermined exit status. Programmers and scripts often use the exit status of a command to assess success (exit status zero) or failure (non-zero) of the command. The true
and false
commands represent the logical values of command success, because true returns 0, and false returns 1.[Note 1]
Usage
The commands are usually employed in conditional statements and loops of shell scripts. For example, the following shell script repeats the echo hello loop 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 take no "actual" parameters; in the GNU version, the standard parameter --help
displays a usage summary and --version
displays the program version.
Null command
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
Notes
- ^ 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
- ^ "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, retrieved 2011-08-04
External links
- The Single UNIX Specification, Version 5 from The Open Group : return true value – Shell and Utilities Reference,
- The Single UNIX Specification, Version 5 from The Open Group : return false value – Shell and Utilities Reference,