Dynamic Agrument while running a script


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Dynamic Agrument while running a script
# 1  
Old 02-18-2007
Dynamic Agrument while running a script

Hi Gurus,

I am tryin to get the nth argument/parameter ( n being calculated in runtime).
I want to assign tghis value to a variable say myvar. How do i do it? I am struggling to get proper escape chars in place.

e.g. Say my script name is myscript.sh
I will run the script by typing $myscript.sh abc def ghi
In the script i have a variable n which wil indicate which parameter to pic up and myvar should contain this parameter.

Thanks in advance.
# 2  
Old 02-18-2007
Code:
eval var=\$${n}

# 3  
Old 02-19-2007
Thank You! Smilie
# 4  
Old 02-19-2007
Only works up til 9 arguments...

The eval var=\$${n} only works for n <= 9. For arbitrary values of n, you'll have to do something more elaborate. Perhaps this inefficient bit of code will help. This uses ksh syntax, so bourne shell will not work. Bash will though:

#!/bin/ksh

n=5
i=1
while [ -n "$1" ] ; do
echo Arg is: $1 i is $i
arguments[$i]=$1; shift
echo arguments array entry $i set to ${arguments[$i]}
let i=i+1
done
echo "I want argument $n. It is: ${arguments[$n]}."
# 5  
Old 02-19-2007
I would expect it to work for n>=10 too...
Code:
$ set q w e r t y u i o p a s d f
$ n=11
$ eval echo \${$n}
a

# 6  
Old 02-20-2007
I guess we can doit by:
1. shift for multiples of ten
or
2. Assign the arguments' list ($*) and using cut (though might fail in few cases)

Any better alternatives UNIX gurus?
# 7  
Old 02-20-2007
From Ygor's post:

Code:
eval var=\${$n}

or even

Code:
eval var=\${${n}}

 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Calling function, based on agrument passed.

Dears, #!/bin/bash func1() { echo "func1" } func2() { echo "func2" } func3() { echo "func3" } (5 Replies)
Discussion started by: sadique.manzar
5 Replies

2. Shell Programming and Scripting

Dynamic script and cron

Hello friends, I have a script.sh running, i need to move his generated file to another path and restart it every 24h. is there a way to restart it from a script in a dynamic way without create a duplicate process? script.sh & mv file to /path script.sh & many thanks for your help (7 Replies)
Discussion started by: kraterions
7 Replies

3. HP-UX

Script dynamic find

Hi everyone, im try to write a small script to do something like this new_find.sh#!/usr/bin/ksh PAR=$1 PATH1=$2 find $PATH1 -name $PAR i need to pass the mask of the find by parameter but this dont work sh new_find *.sql /home/somthing any tip ? thanks! (3 Replies)
Discussion started by: lucasmanson
3 Replies

4. Shell Programming and Scripting

Help Create dynamic ksh script from a script

I am currently running 2 scripts to gather data for a 3rd script and would like to combine the 2 scripts into one. Having issues with the final output format. Note cannot post URL so replaced the http stuff with (name) in the examples All scripts contain #!/bin/ksh OS = Red Hat Enterprise... (0 Replies)
Discussion started by: pcpinkerton
0 Replies

5. Shell Programming and Scripting

Help with dynamic script

Hey there, first post, somewhat-long-time lurker- This is on a Red Hat box Im working on a new site, and I have an idea for a dynamic CGI script to change who is "on call" Pretty much, it would pull next name from a text file each week to display it on the site, and just keeps cycling through... (3 Replies)
Discussion started by: rapenchukd
3 Replies

6. Shell Programming and Scripting

dynamic input to a script

Hi All, I am stuck in a situation where there is a script, say test1.tcsh which is being called from another script ,say test2.tcsh test1.tcsh:- #!/usr/local/bin/tcsh echo -n "Do you wanna test ??" set answ = $< echo $answ if ($answ =~ "y") then echo -n "enter your name <" ... (1 Reply)
Discussion started by: kavyak
1 Replies

7. Shell Programming and Scripting

Shell script dynamic command

I need to run a shell script with dynamic command in it like # Begin script... mysql xx "select * from tab" | sed 's/\t/|/g' > GENERATED_20100304.txt the dynamic part is 20100304 which should be today's date, and it needs to run every day and create a new file with... (2 Replies)
Discussion started by: nuthalapati
2 Replies

8. UNIX for Advanced & Expert Users

Sql dynamic table / dynamic inserts

I have a file that reads File (X.txt) Contents of record 1: rdrDESTINATION_ADDRESS (String) "91 971502573813" rdrDESTINATION_IMSI (String) "000000000000000" rdrORIGINATING_ADDRESS (String) "d0 movies" rdrORIGINATING_IMSI (String) "000000000000000" rdrTRAFFIC_EVENT_TIME... (0 Replies)
Discussion started by: magedfawzy
0 Replies

9. Shell Programming and Scripting

Dynamic variables within shell script

Hi Gurus, I have a requirement of writting the shell script where it should ask me two values FND_TOP=/d02/app/oracle/xxx/fnd/11.5.0 CDCRM_TOP=/d02/app/oracle/xxx/cdcrm/11.5.0 and then keep these values stored as variables for the execution of rest of the script. Because, I have to... (2 Replies)
Discussion started by: isingh786
2 Replies

10. Shell Programming and Scripting

dynamic global script

Hi, I have to create a global dynamic script which should ask for the env or some other variables and then create the soft links. let's say that I have to create ten soft links and the path for these soft links is different for each env for e.g: WDEV: /d02/app/applmgr/wdev/appl/CDCRM/bin... (2 Replies)
Discussion started by: isingh786
2 Replies
Login or Register to Ask a Question