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)