I know of 4 different ways to use a for loop. Here they are for those
that aren't aware of all 4 ways.
|1. for I in {1..10}; do echo $I; done|
|2. for I in 1 2 3 4 5 6 7 8 9 10; do echo $I; done|
|3. for I in $(seq 1 10); do echo $I; done|
|4. for ((I=1; I <= 10 ; I++)); do echo $I; done
|
That being said, I have a script I'm trying to modify to use a variable
instead of a fixed hard-coded value, using the 1st form of the for
loop. I've tried all different ways of quoting and escaping the
variable, and the main problem is that the quoting chars or escape char
are beinh translated and passed into the loop as well as the value
stored in the variable.
For example, to change the start value of 1 to whatever value I want
passed in thru a variable:
for i in {1..100}; do <something>; done
to: for i in {$a..10}; do <something>; done
I have tried: {{$a}..10} and {`$a`..10}, to have the variable evaluated
first.
I have tried the using the eval() function.
I have tried single and double quotes and the backslash escape character.
Nothing I've tried works. Yes, maybe I should try using a different form
of the for loop, but it bugs me that I can't get this form of the for to
work properly. It's probably a stupid syntax error on my part, but as
of now, I'm baffled.
Can anyone shed some light on the problem and solution, please? Thanks!
John
|||
|
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Linux Users Group.
To post a message, send email to [email protected]
To unsubscribe, send email to [email protected]
For more options, visit our group at
http://groups.google.com/group/linuxusersgroup
-~----------~----~----~----~------~----~------~--~---