true invocation (GNU Coreutils 9.0)
Next: test invocation, Previous: false invocation, Up: Conditions [Contents][Index]
16.2 true: Do nothing, successfully
true
does nothing except return an exit status of 0, meaning success. It can be used as a place holder in shell scripts where a successful command is needed, although the shell built-in command :
(colon) may do the same thing faster. In most modern shells, true
is a built-in command, so when you use ‘true
’ in a script, you’re probably using the built-in command, not the one documented here.
true
honors the --help
and --version
options.
Note, however, that it is possible to cause true
to exit with nonzero status: with the --help
or --version
option, and with standard output already closed or redirected to a file that evokes an I/O error. For example, using a Bourne-compatible shell:
$ ./true --version >&- ./true: write error: Bad file number $ ./true --version > /dev/full ./true: write error: No space left on device
This version of true
is implemented as a C program, and is thus more secure and faster than a shell script implementation, and may safely be used as a dummy shell for the purpose of disabling accounts.