[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: The usage of {0..${#parameter}}
From: |
Greg Wooledge |
Subject: |
Re: The usage of {0..${#parameter}} |
Date: |
Wed, 23 Jun 2010 16:41:48 -0400 |
User-agent: |
Mutt/1.4.2.3i |
On Wed, Jun 23, 2010 at 03:27:28PM -0500, Peng Yu wrote:
> #for i in {0..${#parameter}};
This doesn't work. The parser does things in a very specific order.
Brace expansion is done before parameter expansion. The parser sees
0..$ and that isn't a legitimate brace expansion range, so it doesn't
perform the expansion; it leaves it alone. Then the parameter expansion
occurs, and the ${#parameter} is replaced.
If you REALLY MUST use brace expansion, you'll have to wrap the whole
thing in eval. I'd recommend using a for loop instead:
for ((i=0; i<=${#parameter}; i++))
Or if you require (or simply want) the ${#parameter} part to be evaluated
only one time:
n=${#parameter}
for ((i=0; i<=n; i++))