Home » 2014 » December » 28 » Shift command with examples

4:02 PM
Shift command with examples

shift - shift command is used to shift positional parameters

       shift [n]

       The positional parameters can be shifted using this command. Positional parameter 1 shall be assigned the value of parameter (1+n), parameter 2 shall be assigned  the     value of parameter (2+n), and so on.

The parameters represented by the numbers "$#" down to "$#-n+1" shall be unset, and the parameter '#' is updated to reflect the new number of positional parameters.

       The value n shall be an unsigned decimal integer less than or equal to the value of the special parameter '#' . 

If n  is  not  given,  it  is assumed to be 1. If n is 0, the positional and special parameters are not changed.


Below is a simple script to understand the use of shift command:

[email protected]:/home/shanky/test:> cat shifttest.sh

print "Param1=$1";
print "Param2=$2";
print "Param3=$3";

print "All parameters before shift:$*"
shift 2; #shifting by two positions

print "Param1=$1";
print "Param2=$2";
print "Param3=$3";
print "All parameters after shift:$*"

We have used "shift 2" to shift the positional parameters by 2 positions. When we execute the script, the output is as below:

[email protected]:/home/shanky/test:> ./shifttest.sh 45 67 89 77
All parameters before shift:45 67 89 77
All parameters after shift:89 77

You may notice that the first parameter is containing the value of 3rd positional paremters and so on..


Category: Open System-Linux | Views: 1060 | Added by: shanky | Tags: how to shift positional parameters , shift, shift command in linux, shift positional parameters in linu | Rating: 0.0/0

Related blogs

You may also like to see:

[2014-03-25][Open System-Linux]
Create a new user in Linux system: useradd
[2014-04-24][Open System-Linux]
Addition of two numbers using shell scripting in UNIX
[2014-03-03][Open System-Linux]
Working with VI Editor: Basic and Advanced
[2014-10-12][Open System-Linux]
GETENT command in linux to get entries from administrative database
[2014-09-21][Open System-Linux]
How to define command prompt strings in Linux : what are $PS1, $PS2, $PS3 and $PS4?

Total comments: 0