On Tue, Oct 02, 2007 at 12:48:04PM -0700, Mike Bird wrote: > On Tuesday 02 October 2007 11:49, Andrew Sackville-West wrote: > > Hey folks, help me out with this...please > > > > [EMAIL PROTECTED]:~$ for i in {1..3}; do echo $i; done > > 1 > > 2 > > 3 > > [EMAIL PROTECTED]:~$ TEST=3; for i in {1..$TEST}; do echo $i; done > > {1..3} > > > > > > in the first example, its obvious. In the second, $TEST gets replaced > > with 3, but then the {} doesn't get expanded. I'm sure I have to do > > some kind of wacky $({[ type thing, but I'm not able to grok it. any > > ideas? > > > > the purpose is to be able to easily update some loops in a script for > > different numbers of object to iterate over. obvious, I guess. > > From man bash: > > Brace expansion is performed before any other expansions, and any char‐ > acters special to other expansions are preserved in the result. It is > strictly textual. Bash does not apply any syntactic interpretation to > the context of the expansion or the text between the braces. > > This is not pretty but it works: > > TEST=3; for i in $(eval echo {1..$TEST}); do echo $i; done
okay, yeah. thanks. that's sure annoying. A
signature.asc
Description: Digital signature