SHIFT(1) User Commands SHIFT(1)
NAME
shift - shell built-in function to traverse either a shell's argument
list or a list of field-separated words
SYNOPSIS
sh shift [
n]
csh shift [
variable]
ksh *shift [
n]
ksh +shift [
n]
DESCRIPTION
sh The positional parameters from
$n+1 ... are renamed
$1 ... . If
n is not
specified, it is assumed to be 1.
csh The components of
argv, or
variable, if supplied, are shifted to the
left, discarding the first component. It is an error for the variable not
to be set or to have a null value.
ksh The positional parameters from
$n+1 $n+1 ... are renamed
$1 ..., default
n is 1. The parameter
n can be any arithmetic expression that evaluates
to a non-negative number less than or equal to
$#.
On this manual page,
ksh(1) commands that are preceded by one or two *
(asterisks) are treated specially in the following ways:
1. Variable assignment lists preceding the command remain in
effect when the command completes.
2.
I/O redirections are processed after variable assignments.
3. Errors cause a script that contains them to abort.
4. Words, following a command preceded by ** that are in the
format of a variable assignment, are expanded with the same
rules as a variable assignment. This means that tilde
substitution is performed after the
= sign and word splitting
and file name generation are not performed.
ksh93 shift is a shell special built-in that shifts the positional parameters
to the left by the number of places defined by
n, or
1 if
n is omitted.
The number of positional parameters remaining is reduced by the number of
places that are shifted.
If
n is specified, it is evaluated as an arithmetic expression to
determine the number of places to shift. It is an error to shift more
than the number of positional parameters or a negative number of places.
The following exit values are returned by
shift in
ksh93:
0 Successful completion. The positional parameters were successfully
shifted.
>0 An error occurred.
On this manual page,
ksh93(1) commands that are preceded by one or two
+ are treated specially in the following ways:
1. Variable assignment lists preceding the command remain in
effect when the command completes.
2.
I/O redirections are processed after variable assignments.
3. Errors cause a script that contains them to abort.
4. They are not valid function names.
5. Words, following a command preceded by
++ that are in the
format of a variable assignment, are expanded with the same
rules as a variable assignment. This means that tilde
substitution is performed after the
= sign and field splitting
and file name generation are not performed.
SEE ALSO
csh(1),
ksh(1),
ksh93(1),
sh(1),
attributes(7) November 20, 2007
SHIFT(1)