Name

test

Synopsis

test condition
[ condition ]
[[ condition ]]

Evaluate a condition and, if its value is true, return a zero exit status; otherwise, return a nonzero exit status. An alternate form of the command uses [ ] rather than the word test. An additional alternate form uses [[ ]], in which case word splitting and pathname expansion are not done. (See the [[ ]] entry.) condition is constructed using the following expressions. Conditions are true if the description holds true.

File Conditions

-a file

file exists. (Deprecated; use -e instead.)

-b file

file exists and is a block special file.

-c file

file exists and is a character special file.

-d file

file exists and is a directory.

-e file

file exists. (Same as -a, for POSIX compatibility.)

-f file

file exists and is a regular file.

-g file

file exists, and its set-group-id bit is set.

-G file

file exists, and its group is the effective group ID.

-h file

file exists and is a symbolic link. (Same as -L.)

-k file

file exists, and its sticky bit is set.

-L file

file exists and is a symbolic link. (Same as -h.)

-N file

file exists and was modified after it was last read.

-O file

file exists, and its owner is the effective user ID.

-p file

file exists and is a named pipe (FIFO).

-r file

file exists and is readable.

-s file

file exists and has a size greater than zero.

-S file

file exists and is a socket.

-t [n]

The open file descriptor n is associated with a terminal device; default n is 1.

-u

Get bash Quick Reference now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.