Name

test — Evaluate conditions, for use in loops and conditionals.

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 [[ ]]). 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 ...

Get bash Pocket Reference now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.