[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: minor language RFE(s)
From: |
Andreas Schwab |
Subject: |
Re: minor language RFE(s) |
Date: |
Thu, 08 Oct 2015 10:07:15 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) |
Linda Walsh <bash@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, schwab@suse.de
GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE 1748 E4D4 88E3 0EEA B9D7
"And now for something completely different."