Conditional Expressions.
A conditional expression is used with the [[ compound command to test
attributes of files and to compare strings. Word splitting and file
name generation are not performed on the words between [[ and ]].
Each expression can be constructed from one or more of the following
unary or binary expressions:
-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.
-f file True if file exists and is an ordinary file.
-g file True if file exists and is has its setgid bit
set.
-h file True if file exists and is a a symbolic link.
-k file True if file exists and is has its sticky bit
set.
-n string True if length of string is nonzero.
-o option True if option named option is on.
-p file True if file exists and is a fifo special
file or a pipe.
-r file True if file exists and is readable by
current process.
-s file True if file exists and has size greater than
zero.
-t fildes True if file descriptor number fildes is open
and associated with a terminal device.
-u file True if file exists and is has its setuid bit
set.
-w file True if file exists and is writable by
current process.
-x file True if file exists and is executable by
current process. If file exists and is a
directory, the current process has permission
to search in the directory.
-z string True if length of string is zero.
-L file True if file exists and is a symbolic link.
-O file True if file exists and is owned by the
effective user ID of this process.
-G file True if file exists and its group matches the
effective group ID of this process.
-S file True if file exists and is a socket.
file1 -nt file2 True if file1 exists and is newer than file2.
file1 -ot file2 True if file1 exists and is older than file2.
file1 -ef file2 True if file1 and file2 exist and refer to
the same file.
string = pattern True if string matches pattern.
string != pattern True if string does not match pattern.
string1 < string2 True if string1 comes before string2 based on
the ASCII value of their characters.
string1 > string2 True if string1 comes after string2 based on
the ASCII value of their characters.
exp1 -eq exp2 True if exp1 is equal to exp2.
exp1 -ne exp2 True if exp1 is not equal to exp2.
exp1 -lt exp2 True if exp1 is less than exp2.
exp1 -gt exp2 True if exp1 is greater than exp2.
exp1 -le exp2 True if exp1 is less than or equal to exp2.
exp1 -ge exp2 True if exp1 is greater than or equal to
exp2.
A compound expression can be constructed from these primitives by
using any of the following, listed in decreasing order of precedence.
(expression) True, if expression is true.
Used to group expressions.
! expression True if expression is false.
expression1 && expression2 True, if expression1 and
expression2 are both true.
expression1 || expression2 True, if either expression1 or
expression2 is true.
A conditional expression is used with the [[ compound command to test
attributes of files and to compare strings. Word splitting and file
name generation are not performed on the words between [[ and ]].
Each expression can be constructed from one or more of the following
unary or binary expressions:
-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.
-f file True if file exists and is an ordinary file.
-g file True if file exists and is has its setgid bit
set.
-h file True if file exists and is a a symbolic link.
-k file True if file exists and is has its sticky bit
set.
-n string True if length of string is nonzero.
-o option True if option named option is on.
-p file True if file exists and is a fifo special
file or a pipe.
-r file True if file exists and is readable by
current process.
-s file True if file exists and has size greater than
zero.
-t fildes True if file descriptor number fildes is open
and associated with a terminal device.
-u file True if file exists and is has its setuid bit
set.
-w file True if file exists and is writable by
current process.
-x file True if file exists and is executable by
current process. If file exists and is a
directory, the current process has permission
to search in the directory.
-z string True if length of string is zero.
-L file True if file exists and is a symbolic link.
-O file True if file exists and is owned by the
effective user ID of this process.
-G file True if file exists and its group matches the
effective group ID of this process.
-S file True if file exists and is a socket.
file1 -nt file2 True if file1 exists and is newer than file2.
file1 -ot file2 True if file1 exists and is older than file2.
file1 -ef file2 True if file1 and file2 exist and refer to
the same file.
string = pattern True if string matches pattern.
string != pattern True if string does not match pattern.
string1 < string2 True if string1 comes before string2 based on
the ASCII value of their characters.
string1 > string2 True if string1 comes after string2 based on
the ASCII value of their characters.
exp1 -eq exp2 True if exp1 is equal to exp2.
exp1 -ne exp2 True if exp1 is not equal to exp2.
exp1 -lt exp2 True if exp1 is less than exp2.
exp1 -gt exp2 True if exp1 is greater than exp2.
exp1 -le exp2 True if exp1 is less than or equal to exp2.
exp1 -ge exp2 True if exp1 is greater than or equal to
exp2.
A compound expression can be constructed from these primitives by
using any of the following, listed in decreasing order of precedence.
(expression) True, if expression is true.
Used to group expressions.
! expression True if expression is false.
expression1 && expression2 True, if expression1 and
expression2 are both true.
expression1 || expression2 True, if either expression1 or
expression2 is true.
No comments:
Post a Comment