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
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
test expression test [ expression ] [ ] [ option
Due to shell aliases and built-in
test functions, using an
test interactively or in a script may get you
different functionality than that described here. Invoke it via
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.
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|