$# question


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting $# question
# 1  
Old 02-09-2003
$# question

$# holds the number of arguments passed into a shell. Is this value the index of an array? and if so, is there a way to determine the max index of the array so that I can know right off how many values were passed in? or do I have to sit in some sort of loop testing to see if $# is set, incrementing $# along the way? the goal here is to use the max index to define the iteration argument of a loop.
# 2  
Old 02-09-2003
Re: $# question

You weren't very specific, so I'll answer from the Bourne/Korn/zsh perspective.
Quote:
Originally posted by google
$# holds the number of arguments passed into a shell. Is this value the index of an array?
No, as you already wrote, it's the number of arguments passed into the shell. (The array thing is a C-shell -ism.) You access the arguments by using the variables $1, $2, etc. If there are more than nine arguments, you can use ${10}, ${11}, etc. There are lots of ways to scan through the arguments looking for something.
Quote:
google continued
and if so, is there a way to determine the max index of the array so that I can know right off how many values were passed in? or do I have to sit in some sort of loop testing to see if $# is set, incrementing $# along the way? the goal here is to use the max index to define the iteration argument of a loop.
I think all you need is something like this:
Code:
i=1
while [ $i -lt "$#" ] ; do
    eval arg=\${$i}
    # Do something with $arg here
    i=`expr $i + 1`
done

With Korn and Z shells, you get built in simple arithmetic and don't need to invoke expr.

Unless you need to hold on to the previous values in place (rare in practice), the more usual idiom is something like this:
Code:
while [ "$#" -gt 0 ]; do
    # Do something with $1 here
    shift   # Move $1 out, shifting $2->$1, $3->$2, etc
done

Re: the quotes around $#: The Vim syntax hilighting barfs on this expression when it is unquoted.
# 3  
Old 02-10-2003
Thanks for the information you made me realize I asked a silly question!!! Your help is still very much appreciated.

Sorry for the lack of details, I am using Korn Shell.

Last edited by google; 02-12-2003 at 10:11 AM..
Login or Register to Ask a Question

Previous Thread | Next Thread

7 More Discussions You Might Find Interesting

1. AIX

df question

Hi, Can anyone please explain a little about df command. I have following question: Following example is showing % used as 4 where as total free blocks are 15.46 out of 16.00 MB blocks. df -m /test Filesystem MBblocks Free %Used Iused %Iused ... (5 Replies)
Discussion started by: itsabhi9
5 Replies

2. Hardware

question

How to add 3 moniters to a pc set up? (2 Replies)
Discussion started by: clicstic
2 Replies

3. Shell Programming and Scripting

question about wc

Hey my friend was asking me if i knew a way to cout how many different words in a file. I told him no not off hand, but i was thinking about it, and i started to wonder also. I imagine this is probably pretty simple im just missing something, I keep confusing my self with how you would compair and... (16 Replies)
Discussion started by: yodadbl07
16 Replies

4. UNIX for Dummies Questions & Answers

Question

hallo, ik heb hier een vraagje. hoeveel gebruikers kunnen er op 1 unix systeem. hopelijk antwoorden golle nu want ik moet da vinde voor school en die leerkracht zaagt. :p groetjes eu wacht wa was mijne nick ah ja vraagje groetjes vraagje ik kan geen engels dus antwoord liever in het... (1 Reply)
Discussion started by: vraagje
1 Replies

5. UNIX for Dummies Questions & Answers

mv question

Hello if I like to move file from defined directories system to new directory that not contained any directories system structure . But I like to create the same file system structure as source directory for example : I have 2 directories: foo1 and foo2 foo1 have directories and foo2 have... (2 Replies)
Discussion started by: umen
2 Replies

6. Solaris

vi question

Im trying to edit a 113 meg file in VI and i get the error TMP FILE TOO LARGE. Does someone know how to get around this? Thanks! (1 Reply)
Discussion started by: BG_JrAdmin
1 Replies

7. Programming

Yet Another Question

Now that I have getch() to work, I have yet another problem. BTW, thank you for answering these questions, I do ask a lot, only because I am eager to know, what is a board used for anyways :) Ok, he's the problem... #include iostream.h #include conio.h int main() { char movement; ... (2 Replies)
Discussion started by: mbolthouse
2 Replies
Login or Register to Ask a Question