Simple script


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Simple script
# 1  
Old 12-29-2008
Simple script

I am trying to print my script arguments, but i am stuck at the arrow pointed lines..please help

#!/bin/bash
echo "Number of arguments $#"
count=1
while [ $count -le $# ]
do
echo ${$count} <========================
count = $(expr $count +1) <==================
done
# 2  
Old 12-29-2008
Hi,

Try this...

#!/bin/bash
echo "Number of arguments $#"
count=1
while [ $count -le $# ]
do
echo $count
((count=count+1))
done
# 3  
Old 12-30-2008
Hello

FlyingSquirrel's answer works great.

I thought 3 points might be useful:

1)
Going back to your orig attempt, your line 7:

count = $(expr $count +1)

would work if you used 'backticks' like this:

count = `expr $count + 1`

2)
Also - I am not sure why you have a double dereference in line 6:

echo ${$count}

You do not need the extra 'dollar sign'

3)

Maybe more of a stylistic issue... For the builtin variables (ie the positional variable $#) I like to throw that into my own variable - as it makes the script more legible and I dont have to worry about unintended changes.

yrs

Michael
# 4  
Old 12-30-2008
Actually I am trying to print all the arguments to the script. $count would print the count variable, but i want to print values of $1, $2 etc
Quote:
Originally Posted by FlyingSquirrel
Hi,

Try this...

#!/bin/bash
echo "Number of arguments $#"
count=1
while [ $count -le $# ]
do
echo $count
((count=count+1))
done
# 5  
Old 12-30-2008
Aha - shift is your friend, I believe.

Also you want to use either "$*" (and slice it up) or "$@" - not "$#".

Check this out from the "Advanced Bash Scripting guide".

Go to:

Internal Variables

and do a search for "shift".

Notice how you can iterate using the $# variable (as you do) and use shift to pop off the $1 value off of $@ each time. (look at the ABS guide - iti s clearer than my explanation.

Also read up on 2 issues - spacing and the use of quotes with variables.

Enjoy...

Michael
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Simple script

I have to pull files from a customers cloud directory to our cloud directory periodically, the customer has the files in the new-version(nver) folder; which I am pulling via a python script. (python nver.py) customers cloud location: s3://custbucket/$nver/files Our cloud location:... (0 Replies)
Discussion started by: ramky79
0 Replies

2. Shell Programming and Scripting

Simple if script

Hi, new to unix and scripting, and i'm trying to set up a simple "if" script to create a seperate flag file dependant on success. So far i have the following ($5 is a variable passed to the script from the backup job) if then touch /u03/backups/backup_ended.flag else touch... (13 Replies)
Discussion started by: richs24
13 Replies

3. Linux

How to execute a simple select script using a shell script?

Hi team, I have two select statements and need to run them using SYSDBA user select * from temp_temp_seg_usage; select segment_name, tablespace_name, bytes/ (1024*1024) UsedMb from dba_segments where segment_name='TEMP_TEMP_SEG_USAGE'; Need to run this using a shell script say named... (1 Reply)
Discussion started by: pamsy78
1 Replies

4. Shell Programming and Scripting

Help making simple perl or bash script to create a simple matrix

Hello all! This is my first post and I'm very new to programming. I would like help creating a simple perl or bash script that I will be using in my work as a junior bioinformatician. Essentially, I would like to take a tab-delimted or .csv text with 3 columns and write them to a "3D" matrix: ... (16 Replies)
Discussion started by: torchij
16 Replies

5. Shell Programming and Scripting

Simple Script Can u help please?

I have a file that contains these lines User ID Username -------- ---------- 7738626,zrazak 7783535,jvincigu 7805567,ldrennan 7805583,mtsakama I need to sort the names alphabetically How can I sort the lines based on the user names ? I would appreciate a quick reply anyone ... (1 Reply)
Discussion started by: mnassiri
1 Replies

6. Shell Programming and Scripting

Simple Script to do so?

hi guys, i am a noob to shell scripting, and i would like to run a simple script, that could simply do the following: 1. SFTP to a remote server/path...and download the newest *.gz backup file on that server. (there are many *.gz files in that folder, i simply need the latest one) 2. locally... (1 Reply)
Discussion started by: Confidence
1 Replies

7. Shell Programming and Scripting

Simple script

I have a script that will check for integer line by line and if it encounter any blank space will echo it: Below the script: #!/bin/ksh while read i do echo "Value is $i" count=`expr substr "$i" 1 3` echo $count if && then echo "Matched" else echo "Blank Space Found" fi (3 Replies)
Discussion started by: ali560045
3 Replies

8. Shell Programming and Scripting

simple script

Hi, I just need a shell script to find out the processes taking longer time...(Unix/Linux) Urgent response needed.. Rajiv (5 Replies)
Discussion started by: rajivn786
5 Replies

9. Shell Programming and Scripting

Simple Script

Here is the script that i am trying to run. I get an error and i can't figure out what is the problem. #!/bin/bash echo "What is your name" read NAME if ; then echo "My name is the same" esle echo "You have a nice name" fi (11 Replies)
Discussion started by: xplod4202
11 Replies

10. UNIX for Dummies Questions & Answers

help with simple script

I need a script that checks to see if ypserv is running, and if not it will restart yp. I have a ypslave that is running Sol9, and the ypsrv daemon is dieing, I want to create a cron job that periodicly checks to see if it's running, and if it see's that it isn't, it will re-start the daemon (1 Reply)
Discussion started by: jdel80
1 Replies
Login or Register to Ask a Question