Gnu/coreutils/test-invocation
Next: expr invocation, Previous: true invocation, Up: Conditions [Contents][Index]
16.3 test
: Check file types and compare values
test
returns a status of 0 (true) or 1 (false) depending on the
evaluation of the conditional expression expr
. Each part of the
expression must be a separate argument.
test
has file status checks, string operators, and numeric
comparison operators.
test
has an alternate form that uses opening and closing
square brackets instead a leading ‘test
’. For example, instead
of ‘test -d /
’, you can write ‘[ -d / ]
’. The square
brackets must be separate arguments; for example, ‘[-d /]
’ does
not have the desired effect. Since ‘test expr
’ and ‘[ expr ]
’ have the same meaning, only the former form is discussed
below.
Synopses:
test expression test [ expression ] [ ] [ option
Due to shell aliases and built-in test
functions, using an
unadorned test
interactively or in a script may get you
different functionality than that described here. Invoke it via
env
(i.e., env test …
) to avoid interference
from the shell.
If expression
is omitted, test
returns false.
If expression
is a single argument,
test
returns false if the argument is null and true
otherwise. The argument
can be any string, including strings like ‘-d
’, ‘-1
’,
‘--
’, ‘--help
’, and ‘--version
’ that most other
programs would treat as options. To get help and version information,
invoke the commands ‘[ --help
’ and ‘[ --version
’, without
the usual closing brackets. See Common options.
Exit status:
0 if the expression is true, 1 if the expression is false, 2 if an error occurred.
• File type tests | -[bcdfhLpSt] | |
• Access permission tests | -[gkruwxOG] | |
• File characteristic tests | -e -s -nt -ot -ef | |
• String tests | -z -n = == != | |
• Numeric tests | -eq -ne -lt -le -gt -ge | |
• Connectives for test | ! -a -o |
Next: expr invocation, Previous: true invocation, Up: Conditions [Contents][Index]