The UNIX and Linux Forums  
Hello and Welcome from United States to the UNIX and Linux Forums! Thank You for Visiting and Joining Our Global Community.

Go Back   The UNIX and Linux Forums > Top Forums > UNIX for Dummies Questions & Answers
.
google unix.com



UNIX for Dummies Questions & Answers If you're not sure where to post a UNIX or Linux question, post it here. All UNIX and Linux newbies welcome !!

More UNIX and Linux Forum Topics You Might Find Helpful
Thread Thread Starter Forum Replies Last Post
ls positional parameter vasuarjula AIX 1 02-13-2008 10:49 PM
Positional parameters shalu@ibm UNIX for Dummies Questions & Answers 2 11-22-2007 07:58 AM
positional grep Manish Jha Shell Programming and Scripting 1 05-16-2006 02:33 PM
Positional Parameters google Shell Programming and Scripting 2 09-26-2003 01:51 PM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Search this Thread Rate Thread Display Modes
  #1 (permalink)  
Old 10-21-2005
ericelysia ericelysia is offline
Registered User
  
 

Join Date: Oct 2005
Posts: 22
Positional Parameters

Hello,

I am using the Bourne shell.

I am trying to understand the concept of positional parameters.

I do understand that positional parameters:

1. Are initialized by shell
2. Have a max of 9 parameters ($1 to $9)
3. Have no limit on the number of arguments
4. Can be rearranged with the shift command

Can someone please give me a simple example to help me better understand how to use positional parameters?

Thanks,
Eric
  #2 (permalink)  
Old 10-22-2005
vino's Avatar
vino vino is offline Forum Staff  
Supporter (in vino veritas)
  
 

Join Date: Feb 2005
Location: Bangalore, India
Posts: 2,796
Code:
1. Are initialized by shell
They are not initialized by the shell. Rather they pick up the values from the arguments passed to a shell script.

2. Have a max of 9 parameters ($1 to $9)
Not true. It can go beyond 9. After $9, the next positional parameter will be accessed as ${10}, ${11} .. et al.

3. Have no limit on the number of arguments
This is true. Bit this statement is contradicting to what you mentioned in point 2. 

4. Can be rearranged with the shift command
The postional arguments gets shifted one place to the left when you make one shift call. i.e. $1 will get the value that was held by $2, $2 will get the value that was held by $3.. so on and so forth..
$0 never gets shifted.
And positional parameters cant be assigned new values unless you use set

Read the man bash

vino
  #3 (permalink)  
Old 10-22-2005
ericelysia ericelysia is offline
Registered User
  
 

Join Date: Oct 2005
Posts: 22
Code:
1. Are initialized by shell
They are not initialized by the shell. Rather they pick up the values from the arguments passed to a shell script.
I am not sure I completely understand this.

For example, if I do the following:
Code:
$> var1=one
$> var2=two
$> var3=three
$> echo $var1
one
$> echo $var2
two
$> echo $var3
three
How am I able to use these variables from a file within a different directory?
Is this a good example that will help me understand the concept? I am trying to write a few small examples to help me see exactly what is happening.

Code:
2. Have a max of 9 parameters ($1 to $9)
Not true. It can go beyond 9. After $9, the next positional parameter will be accessed as ${10}, ${11} .. et al.
What about addressable parameters? Is it a max of 9 addressable parameters? I am not sure where I read this. I wrote it down as I was trying to learn more about it.

Code:
3. Have no limit on the number of arguments
This is true. Bit this statement is contradicting to what you mentioned in point 2.
I understand that this does contradict what I originally posted for #2.

Code:
4. Can be rearranged with the shift command
The postional arguments gets shifted one place to the left when you make one shift call. i.e. $1 will get the value that was held by $2, $2 will get the value that was held by $3.. so on and so forth..
$0 never gets shifted.
I do understand how shift works now.

Thank you,
Eric
  #4 (permalink)  
Old 10-22-2005
vino's Avatar
vino vino is offline Forum Staff  
Supporter (in vino veritas)
  
 

Join Date: Feb 2005
Location: Bangalore, India
Posts: 2,796
There are a few examples on the use of positional parameters - Positional Parameters
  #5 (permalink)  
Old 10-22-2005
Perderabo's Avatar
Perderabo Perderabo is offline Forum Staff  
Unix Daemon
  
 

Join Date: Aug 2001
Location: Ashburn, Virginia
Posts: 9,111
The Bourne shell does not support ${10}. Here is an example where I tried it:
Code:
$ set one two three four five six seven eight nine ten eleven
$ echo $1
one
$ echo ${1}
one
$ echo $9
nine
$ echo ${10}
bad substitution
$ shift
$ echo $9
ten
$
The Korn shell and Bash both do support it. But not the old Bourne shell. The Bourne shell is very old. Replacements have been available since at least 1988. I don't understand why people would use it for new scripts. The Posix standard mandates a newer shell. Any version of Unix that does not have a modern shell available is in violation of the standard.
  #6 (permalink)  
Old 10-22-2005
ericelysia ericelysia is offline
Registered User
  
 

Join Date: Oct 2005
Posts: 22
That's good to know.

Thanks for the clarification.

Eric
Closed Thread

Bookmarks

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On




All times are GMT -4. The time now is 10:40 AM.


Powered by: vBulletin, Copyright ©2000 - 2006, Jelsoft Enterprises Limited. Language Translations Powered by .
vBCredits v1.4 Copyright ©2007 - 2008, PixelFX Studios
The UNIX and Linux Forums Content Copyright ©1993-2009. All Rights Reserved.Ad Management by RedTyger

Content Relevant URLs by vBSEO 3.2.0