sh-posix.1 (2010 09)

s
sh-posix(1) sh-posix(1)
Prompting
When used interactively, the shell prompts with the value of
PS1 before reading a command. Whenever
a newline is received and further input is needed to complete a command, the secondary prompt (the
value of
PS2) is issued.
Conditional Expressions
A conditional expression is used with the
[[ compound command to test attributes of files and to com-
pare strings. Word splitting and file name generation are not performed on the words between
[[ and
]]. (See also the test special command.) 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.
-e file True, if file exists.
-f file True, if file exists and is an ordinary file.
-g file True, if file exists and has its setgid bit set.
-h file True, if file exists and is a symbolic link.
-k file True, if file exists and has its sticky bit set.
-n string True, if length of string is nonzero.
-o option True, if the set option named option is on.
-p file True, if file exists and is a fo 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 a size greater than zero.
-t fildes True, if file descriptor number fildes is open and is associated with a terminal
device.
-u file True, if file exists and has its setuid bit set.
-w file True, if file exists and is writable by the current process.
-x file True, if file exists and is executable by the current process. If file exists and is
a directory, then 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 .
string < string2 True, if string1 comes before string2 based on the ASCII value of their charac-
ters.
string > string2 True, if string1 comes after string2 based on the ASCII value of their charac-
ters.
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.
(exp) True, if exp is true. Used to group expressions.
!exp True, if exp is false.
exp1 && exp2 True, if exp1 and exp2 are both true.
exp1 || exp2 True, if either exp1 or exp2 is true.
Input/Output
Before a command is executed, its input and output can be redirected using a special notation interpreted
by the shell. The following can appear anywhere in a simple-command or may precede or follow a com-
mand and are not passed on to the invoked command. Command and parameter substitution occurs
HP-UX 11i Version 3: September 2010 17 Hewlett-Packard Company 17