Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

break(1sh)

cd(1sh)

chdir(1sh)

continue(1sh)

csh(1csh)

echo(1sh)

eval(1sh)

exec(1sh)

exit(1sh)

export(1sh)

hash(1sh)

login(1)

pwd(1sh)

read(1sh)

readonly(1sh)

return(1sh)

set(1sh)

sh(1sh)

shift(1csh)

test(1sh)

times(1sh)

trap(1sh)

type(1sh)

ulimit(1sh)

umask(1sh)

unset(1sh)

wait(1sh)

which(1sh)

execve(2)



SHIFT(1SH)              COMMAND REFERENCE              SHIFT(1SH)



NAME
     shift - rename positional parameters (sh built-in)

SYNOPSIS
     shift [ n ]

DESCRIPTION
     The positional parameters from $n+1  . . . are renamed to
     $1....  If n is not given, it is assumed to be 1.

EXAMPLES
     The major use of shift is to parse command lines.  This
     shell script checks its argument to see if it is a number.
     If it is, it may be doubled, tripled, or quadrupled by
     giving the options -d, -t, or -q, respectively, to the shell
     script.  Only the last flag is used.  In this case, shift is
     used so that the argument being worked with is always $1.

          #!/bin/sh
          Mult=1
          while true
          do
               case $1 in

                    -d)
                         Mult=2
                         ;;

                    -t)
                         Mult=3
                         ;;

                    -q)
                         Mult=4
                         ;;

                    -*)
                         echo "$0 : usage : "`basename $0`" [-d] [-t] [-q] num"
                         exit 1
                         ;;
                    *)
                         break
                         ;;
               esac
               shift
          done
          if test $# -ne 1
          then
               echo "$0 : usage : "`basename $0`" [-d] [-t] [-q] num"
               exit 1





Printed 4/6/89                                                  1





SHIFT(1SH)              COMMAND REFERENCE              SHIFT(1SH)



          fi
          if test "0$1" -eq 0 -a "0$1" != "00"
          then
               echo "$1 is not a positive integer."
               exit 1
          fi
          expr "$1" '*' "$Mult"

RETURN VALUE
     [NO_ERRS]      Command completed without error.

     [NP_ERR]       An error occurred that was not a system
                    error.  Execution terminated.

CAVEATS
     It should be noted that only positional parameters $1
     through $9 may be referenced individually.  To get the value
     of $12, shift must be executed three times or with a value
     of 3, at which point the desired value will be in $9.

SEE ALSO
     break(1sh), cd(1sh), chdir(1sh), continue(1sh), csh(1csh),
     echo(1sh), eval(1sh), exec(1sh), exit(1sh), export(1sh),
     hash(1sh), login(1), pwd(1sh), read(1sh), readonly(1sh),
     return(1sh), set(1sh), sh(1sh), shift(1csh), test(1sh),
     times(1sh), trap(1sh), type(1sh), ulimit(1sh), umask(1sh),
     unset(1sh), wait(1sh), which(1sh), and execve(2).




























Printed 4/6/89                                                  2



%%index%%
na:312,122;
sy:434,159;
de:593,275;
ex:868,1451;2703,195;
rv:2898,288;
ca:3186,377;
se:3563,908;
%%index%%000000000130

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026