07-28-2006
Ok Let me try.. Suppose you have passed 14 parameters in shell command line
and you are accessing those(i guess parameters names look familiar to you)...
In below example shift 5 results first 5 parameters are lost. at this point if you run $echo $1 it will output the sixth parameter you have passed.and if you echo $5 it will be the 10th parameter you have passed.I hope you understood now...
DB_LOGIN=$1
DB_USERID=$2
DB_USERNAME=$3
DB_REQUEST_ID=$4
P_ORG_ID=$5
P_Dummy=$6
P_COST_TYPE_ID=$7
P_PERIOD=$8
P_SORT_OPTION=$9
shift 5
after this shift $5 means 10th parameter $6 means 11th and so on $7 become 12 th $8 13th ......we could have done in other way like shift 9
so after this $1 become 10th parameter.....It is important to store positional parameters into othe variables because after shift previous values are lost
P_REPORT_OPTION=$5
P_COST_CENTER_FROM=$6
P_COST_CENTER_TO=$7
P_ITEM_FROM=$8
P_ITEM_TO=$9
Last edited by Dhruva; 07-28-2006 at 07:56 AM..
10 More Discussions You Might Find Interesting
1. Programming
Hi
How to pass multi line text as a command line argument to a program.
(i.e)
./a.out hi this is sample 0 file1
where
hi this is sample should be stored in argv
0 in argv and so on... (3 Replies)
Discussion started by: bankpro
3 Replies
2. Shell Programming and Scripting
--------------------------------------------------------------------------------
I have this while loop and at the end I am trying to get it to tell me the last argument I entered. And with it like this all I get is the sentence with no value for $1. Now I tried moving done after the sentence... (1 Reply)
Discussion started by: skooly5
1 Replies
3. Shell Programming and Scripting
Hi,
When i am running the following script 1.sh (without giving the command line arguments) then i am getting the following error.
if
then
echo "UID and PWD are correct"
elif
then
echo "Either UID or PWD is wrong. Please check your UID and PWD"
else
echo "UID and PWD can't be blank"... (9 Replies)
Discussion started by: sunitachoudhury
9 Replies
4. UNIX for Dummies Questions & Answers
I am working on a script wherein i need the user to enter the Build ID
for eg:the command line will show
enter the build ID
Now on entering the build ID it should be assigned to @ARGV.
How can this be done.? (1 Reply)
Discussion started by: Varghese
1 Replies
5. UNIX for Dummies Questions & Answers
Hi, I'm having problems with a script where I wanted every single option specified in the command line to have an argument taken with it, but for some reason only d works in the code I will be showing below.
For example if I did ./thisfile -a something
it would come up with "a chosen with " as... (2 Replies)
Discussion started by: IceX
2 Replies
6. Shell Programming and Scripting
Hi,
Can anyone please help me to know what is the maximum number of command line arguments that we can pass in unix shell script?
Thanks in advance,
Punitha.S (2 Replies)
Discussion started by: puni
2 Replies
7. UNIX for Dummies Questions & Answers
hi, can someone how to accept command line arguments as a variable using in script?
like: ./scriptname arguments
by accept arguments, I can use it in my script?
thx! (1 Reply)
Discussion started by: ikeQ
1 Replies
8. Shell Programming and Scripting
I am new to the world of Unix and shell scripting and have been trying to get the following simple script to work:
#!/bin/bash
echo "what is your age?"
echo "you are $1 years old"I want to be able to enter my age on the command line, when prompted, and it return the... (1 Reply)
Discussion started by: meursault
1 Replies
9. Shell Programming and Scripting
hi,,,,
I want to create a command prompt, for example "prompt>", so my prompt need to handle commands, for example "prompt>cmd", so i want to know how to get arguments for my own commands cmd, i.e. default argc should contain arguments count and argv should point to the argument vector i.e, for... (2 Replies)
Discussion started by: vins_89
2 Replies
10. Shell Programming and Scripting
Hi all,
I am trying to write a code for addition of n numbers which will be passed by the user as command line arguments.
I wrote the following code.
add=0
for (( i = 1 ; i <= $# ; i++ ))
do
add=`expr $i + $add`
done
#echo "sum is : $add"
input :
$./add.sh 12 32 14... (7 Replies)
Discussion started by: PranavEcstasy
7 Replies
LEARN ABOUT OPENDARWIN
shift
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]
DESCRIPTION
sh
The positional parameters from $n+1 ... are renamed $1 ... . If n is not given, 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 man 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 vari-
able assignment. This means that tilde substitution is performed after the = sign and word splitting and file name generation are not
performed.
ATTRIBUTES
See attributes(5) for descriptions of the following attributes:
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
|Availability |SUNWcsu |
+-----------------------------+-----------------------------+
SEE ALSO
csh(1), ksh(1), sh(1), attributes(5)
SunOS 5.10 15 Apr 1994 shift(1)