Linda Walsh <b...@tlinx.org> writes: > If I am using a var as an index in a for loop > as in: > > for((i=0; i<10; ++i)); do : done > > or 2) as an iterator as in > > for i in {1..10}; do : done > > **and** such usage is in a function, > > the default is to promote 'i' to 'global' status,
This behaviour is shared with all uses of shell variables. > which is usually not needed nor desired (that doesn't mean > there aren't cases where one wants it global, > but I'm referring to the most common case). > > The common workaround is to put the onus on the user > of 'i' to first declare it as local. That's not easily > changed w/o potential chaos... however, > > I was thinking ... lets say we had 1 or 2 abbreviation > keywords, at least 1 being "int=declare -i", > and ease-of-use "my=declare" > > that could then allow the "declare" of the 'for' iterator > as local, in-line. > > i.e. instead of predeclaring them w/'declare -i' or 'declare' > one could write: > > for((int i=0; i<10; ++i)); do : done > > or 2) > > for int i in {1..10}; do : done > for my i in {a..z}; do : done If you want perl you know where to get it. Andreas. -- Andreas Schwab, SUSE Labs, sch...@suse.de GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE 1748 E4D4 88E3 0EEA B9D7 "And now for something completely different."