Using a variable as a for loop expression


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Using a variable as a for loop expression
# 8  
Old 09-21-2012
Perhaps the posts before has solved your problem?
If not, and if you want to carry on with your solution I think this can get the for-loop to work, it's ugly, but works in bash (FreeBSD):
This
Code:
...
    for `eval "$a"`
...
    a='((n=$north; n>=1)); n--'
...

Has to be like - EDIT: I changed this code after advise from @alister in the next post
Code:
...
    for (($a_start; $a_expr; $a_eval))
...
    a_start='n=north'
    a_expr='n>=1'
    a_eval='n--'
...

But, @Corona688 has a point here
Quote:
Originally Posted by Corona688
...
I'm not sure assembling a big giant command then feeding it into eval is a good idea.

Last edited by 244an; 09-22-2012 at 09:01 AM..
# 9  
Old 09-22-2012
Quote:
Originally Posted by 244an
Has to be like
Code:
...
    for (($(eval echo $a_start); $a_expr; $a_eval))
...
    a_start='n=$north'

The command substitution and eval and echo are unnecessary.
Code:
    for (($a_start; $a_expr; $a_eval))
...
    a_start='n=north'

Regards,
Alister
This User Gave Thanks to alister For This Post:
# 10  
Old 09-22-2012
Thanks, after your explanation it's kind of logical, same as in [[ ... ]] -expressions. I also changed in my last post.

I also noticed when I tested this that there is no need to use $ for a_start etc. (FreeBSD - bash), it seems to expand twice (or more), kind of strange. But I think it would be less readable if you use the "a_"-variables without $ in the for-expression.

Last edited by 244an; 09-22-2012 at 09:41 AM..
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Regular expression as a variable

I'm trying to use a series of regular expressions as variables but can't get it to behave properly. You can see below what I'm trying to do. Here with lowercase a-z and the same with uppercase, numbers 0-9 and again with a set of special characters, without having to type out every single... (3 Replies)
Discussion started by: 3therk1ll
3 Replies

2. Shell Programming and Scripting

Trying to execute a expression in a variable

Hi i tried to execute a below script but it is giving execution error rec=ABC,1234,55.00 Colno=2 coldel=, fd='"'$coldel'"' fprint="'"'{print$'$colno'}'"'" colsyn=`echo "echo "$rec "| awk -F"$fd $fprint` echo column syntax is $colsyn colrec=`colsyn` echo column is $colrec (5 Replies)
Discussion started by: ragu.selvaraj
5 Replies

3. Shell Programming and Scripting

[Solved] How to increment and add variable length numbers to a variable in a loop?

Hi All, I have a file which has hundred of records with fixed number of fields. In each record there is set of 8 characters which represent the duration of that activity. I want to sum up the duration present in all the records for a report. The problem is the duration changes per record so I... (5 Replies)
Discussion started by: danish0909
5 Replies

4. Shell Programming and Scripting

Array Variable being Assigned Values in Loop, But Gone when Loop Completes???

Hello All, Maybe I'm Missing something here but I have NOOO idea what the heck is going on with this....? I have a Variable that contains a PATTERN of what I'm considering "Illegal Characters". So what I'm doing is looping through a string containing some of these "Illegal Characters". Now... (5 Replies)
Discussion started by: mrm5102
5 Replies

5. Shell Programming and Scripting

assigning value of a expression to a variable

eval echo \$tts_space_name$count i m getting output of this stmnt as 'TBS_ADOX_EXTR3' but, I m not able to assign this value to a variable . i tried export j=`eval echo \$tts_space_name$count` eval j= `eval echo \$tts_space_name$count` and when i do echo $j ... i get o/p as 1 or 2... (1 Reply)
Discussion started by: Gl@)!aTor
1 Replies

6. Shell Programming and Scripting

Variable expression and while

hi, i'm reading a file "LISTE_FILE" like : # $LOGCOM * 5 $PRCCOM * 10 and i want to use the file with "while" and having the fields splitted into new variables for treatment : while read LINE do # Ignorer les commentaires un # en premiere position if then... (3 Replies)
Discussion started by: Nicol
3 Replies

7. Shell Programming and Scripting

using regular expression in for loop

Hi, i want to use regular expression in a for loop like this. for var in "/Mar/2010" do echo "Usage for the date $var" -----and want to grep $var partten from a file-------- done and it is not working. I am new to shell scripting, any one has any idea how to do it. (5 Replies)
Discussion started by: tarakant
5 Replies

8. Shell Programming and Scripting

Assigne an expression to a variable

I hope this is not a duplicate thread, but i didn't find anything similar... I had this script: filename1=/swkgr/bin/risk/GF2KGR/arch/GF2KGR_M_ filename2=/swkgr/bin/risk/GF2KGR/arch/GF2KGR_D_ day='date +%m%d' echo $filename1$day echo $filename2$day and i want this output: ... (7 Replies)
Discussion started by: raffaelesergi
7 Replies

9. Shell Programming and Scripting

[sh] While loop -> Expression recursion level exceeded

Hi! I wanted to use a while loop, like the one below, for checking words extracted by awk to terminate when a specific word appears. Unfortunately whenever I put my code inside the loop I get an error "Expression recursion level exceeded". What does it mean? What recursion? I don't have any... (4 Replies)
Discussion started by: machinogodzilla
4 Replies

10. Shell Programming and Scripting

regular expression using a variable

hello, I use AIX with ISM PILOT, I want to match something with a varible like this : $variable = 10 #this variable is the number of the job "$variable STARTED" # the pattern how can use this variable to match it with the word STARTED Tanks (0 Replies)
Discussion started by: barribar
0 Replies
Login or Register to Ask a Question