Format: Test conditions
Test-N string: string is not empty
Test-Z string: string is empty
Test int1-EQ int2: int1 = int 2
Test int1-ne int2: int1! = Int2
Test int1-GT int2: int1> int2
Test int1-ge int2: int1> = int2
Test int1-lt int2: int1 <int2
Test int1-Le int2: int1 <= int2
Test-r filename: the user has the read permission on the file filename.
Test-W filename: the user has the write permission on the file filename.
Test-x filename: the user has the executable permission on the file filename.
Test-f filename: The file filename is a normal file.
Test-D filename: The file filename is a directory
Test-C filename: The file filename is the character device file.
Test-B filename: The file filename is a block device file.
Test-s filename: file filename size is not zero
Test-T fnumb: The device associated with the file descriptor fnumb (default value: 1) is a terminal device.
Test! -S empty: Empty is empty
Test-A: and
Test-O: or
Note that the test command and [] brackets serve the same purpose ..