The Set Builtin
Bash Features
Bash Variables
Conditional expressions are used by the [[
compound command
and the test
and [
builtin commands.
Expressions may be unary or binary.
Unary expressions are often used to examine the status of a file.
There are string operators and numeric comparison operators as well.
If any file argument to one of the primaries is of the form
`/dev/fd/N
', then file descriptor N is checked.
-a file
|
True if file exists. |
-b file
|
True if file exists and is a block special file. |
-c file
|
True if file exists and is a character special file. |
-d file
|
True if file exists and is a directory. |
-e file
|
True if file exists. |
-f file
|
True if file exists and is a regular file. |
-g file
|
True if file exists and its set-group-id bit is set. |
-h file
|
True if file exists and is a symbolic link. |
-k file
|
True if file exists and its "sticky" bit is set. |
-p file
|
True if file exists and is a named pipe (FIFO). |
-r file
|
True if file exists and is readable. |
-s file
|
True if file exists and has a size greater than zero. |
-t fd
|
True if file descriptor fd is open and refers to a terminal. |
-u file
|
True if file exists and its set-user-id bit is set. |
-w file
|
True if file exists and is writable. |
-x file
|
True if file exists and is executable. |
-O file
|
True if file exists and is owned by the effective user id. |
-G file
|
True if file exists and is owned by the effective group id. |
-L file
|
True if file exists and is a symbolic link. |
-S file
|
True if file exists and is a socket. |
-N file
|
True if file exists and has been modified since it was last read. |
file1 -nt file2
|
True if file1 is newer (according to modification date) than file2. |
file1 -ot file2
|
True if file1 is older than file2. |
file1 -ef file2
|
True if file1 and file2 have the same device and inode numbers. |
-o optname
|
True if shell option optname is enabled.
The list of options appears in the description of the ` |
-z string
|
True if the length of string is zero. |
-n string
string
|
True if the length of string is non-zero. |
string1 == string2
|
True if the strings are equal.
` |
string1 != string2
|
True if the strings are not equal. |
string1 < string2
|
True if string1 sorts before string2 lexicographically in the current locale. |
string1 > string2
|
True if string1 sorts after string2 lexicographically in the current locale. |
arg1 OP arg2
|
|