* repeat count? @ 2023-01-16 18:05 Dominik Vogt 2023-01-16 18:26 ` zeurkous ` (2 more replies) 0 siblings, 3 replies; 12+ messages in thread From: Dominik Vogt @ 2023-01-16 18:05 UTC (permalink / raw) To: Zsh Users Is it possible to get the pass number of a repeat loop from within the loop, or is it necessary to use a hand written counter? repeat 10; do echo "pass number ???" done Ciao Dominik ^_^ ^_^ -- Dominik Vogt ^ permalink raw reply [flat|nested] 12+ messages in thread
* RE: repeat count? 2023-01-16 18:05 repeat count? Dominik Vogt @ 2023-01-16 18:26 ` zeurkous 2023-01-16 18:49 ` Roman Perepelitsa 2023-01-16 19:04 ` Stephane Chazelas 2023-01-16 19:20 ` Roman Perepelitsa 2 siblings, 1 reply; 12+ messages in thread From: zeurkous @ 2023-01-16 18:26 UTC (permalink / raw) To: dominik.vogt, Zsh Users On Mon, 16 Jan 2023 19:05:21 +0100, Dominik Vogt <dominik.vogt@gmx.de> wrote: > Is it possible to get the pass number of a repeat loop from within > the loop, or is it necessary to use a hand written counter? > > repeat 10; do > echo "pass number ???" > done > Dunno, but one alternative is-- for a in {0..9}; do echo "pass number ${a}"; done; > Ciao > > Dominik ^_^ ^_^ HTH, --zeurkous. > > =2D- > > Dominik Vogt > -- Friggin' Machines! ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: repeat count? 2023-01-16 18:26 ` zeurkous @ 2023-01-16 18:49 ` Roman Perepelitsa 2023-01-16 19:17 ` Marc Chantreux 2023-01-19 14:50 ` zeurkous 0 siblings, 2 replies; 12+ messages in thread From: Roman Perepelitsa @ 2023-01-16 18:49 UTC (permalink / raw) To: zeurkous; +Cc: dominik.vogt, Zsh Users On Mon, Jan 16, 2023 at 7:31 PM <zeurkous@blaatscaahp.org> wrote: > > On Mon, 16 Jan 2023 19:05:21 +0100, Dominik Vogt <dominik.vogt@gmx.de> wrote: > > Is it possible to get the pass number of a repeat loop from within > > the loop, or is it necessary to use a hand written counter? > > > > repeat 10; do > > echo "pass number ???" > > done > > > > Dunno, but one alternative is-- > > for a in {0..9}; do > echo "pass number ${a}"; > done; Be aware that this is a lot slower if you are iterating many times and care about the performance of the loop. Roman. ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: repeat count? 2023-01-16 18:49 ` Roman Perepelitsa @ 2023-01-16 19:17 ` Marc Chantreux 2023-01-19 14:50 ` zeurkous 1 sibling, 0 replies; 12+ messages in thread From: Marc Chantreux @ 2023-01-16 19:17 UTC (permalink / raw) To: Roman Perepelitsa; +Cc: zeurkous, dominik.vogt, Zsh Users On Mon, Jan 16, 2023 at 07:49:39PM +0100, Roman Perepelitsa wrote: > > for a in {0..9}; do > > echo "pass number ${a}"; > > done; print -f 'pass number %d\n' {0..9} # is there a way to online this ? set -- {0..9} print -l 'pass number '$^@ n=0; repeat 10 echo pass number $[++n] > Be aware that this is a lot slower if you are iterating many times and > care about the performance of the loop. my prefered would be seq -f 'pass number %g' 10 regards, marc ^ permalink raw reply [flat|nested] 12+ messages in thread
* RE: Re: repeat count? 2023-01-16 18:49 ` Roman Perepelitsa 2023-01-16 19:17 ` Marc Chantreux @ 2023-01-19 14:50 ` zeurkous 1 sibling, 0 replies; 12+ messages in thread From: zeurkous @ 2023-01-19 14:50 UTC (permalink / raw) To: Roman Perepelitsa; +Cc: dominik.vogt, Zsh Users On Mon, 16 Jan 2023 19:49:39 +0100, Roman Perepelitsa <roman.perepelitsa@gmail.com> wrote: > On Mon, Jan 16, 2023 at 7:31 PM <zeurkous@blaatscaahp.org> wrote: >> >> On Mon, 16 Jan 2023 19:05:21 +0100, Dominik Vogt <dominik.vogt@gmx.de> wrote: >> > Is it possible to get the pass number of a repeat loop from within >> > the loop, or is it necessary to use a hand written counter? >> > >> > repeat 10; do >> > echo "pass number ???" >> > done >> > >> >> Dunno, but one alternative is-- >> >> for a in {0..9}; do >> echo "pass number ${a}"; >> done; > > Be aware that this is a lot slower if you are iterating many times and > care about the performance of the loop. Yes, due to the text processing involved. But in a crunch, it can do. --zeurkous. > Roman. -- Friggin' Machines! ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: repeat count? 2023-01-16 18:05 repeat count? Dominik Vogt 2023-01-16 18:26 ` zeurkous @ 2023-01-16 19:04 ` Stephane Chazelas 2023-01-16 19:05 ` Stephane Chazelas 2023-01-19 14:52 ` zeurkous 2023-01-16 19:20 ` Roman Perepelitsa 2 siblings, 2 replies; 12+ messages in thread From: Stephane Chazelas @ 2023-01-16 19:04 UTC (permalink / raw) To: Zsh Users 2023-01-16 19:05:21 +0100, Dominik Vogt: > Is it possible to get the pass number of a repeat loop from within > the loop, or is it necessary to use a hand written counter? > > repeat 10; do > echo "pass number ???" > done [...] You can always do: n=0; repeat 10 echo pass number $((++n)) Or a la ksh93 for ((n=1;n<=10;n++)) echo pass number $((++n)) -- Stephane ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: repeat count? 2023-01-16 19:04 ` Stephane Chazelas @ 2023-01-16 19:05 ` Stephane Chazelas 2023-01-19 14:52 ` zeurkous 1 sibling, 0 replies; 12+ messages in thread From: Stephane Chazelas @ 2023-01-16 19:05 UTC (permalink / raw) To: Zsh Users 2023-01-16 19:04:07 +0000, Stephane Chazelas: [...] > Or a la ksh93 > > for ((n=1;n<=10;n++)) echo pass number $((++n)) Sorry, should have been: for ((n=1;n<=10;n++)) echo pass number $n ^ permalink raw reply [flat|nested] 12+ messages in thread
* RE: Re: repeat count? 2023-01-16 19:04 ` Stephane Chazelas 2023-01-16 19:05 ` Stephane Chazelas @ 2023-01-19 14:52 ` zeurkous 1 sibling, 0 replies; 12+ messages in thread From: zeurkous @ 2023-01-19 14:52 UTC (permalink / raw) To: Stephane Chazelas, zsh-users On Mon, 16 Jan 2023 19:04:07 +0000, Stephane Chazelas <stephane@chazelas.org> wrote: > 2023-01-16 19:05:21 +0100, Dominik Vogt: >> Is it possible to get the pass number of a repeat loop from within >> the loop, or is it necessary to use a hand written counter? >> >> repeat 10; do >> echo "pass number ???" >> done > [...] > > You can always do: > > n=0; repeat 10 echo pass number $((++n)) > > Or a la ksh93 > > for ((n=1;n<=10;n++)) echo pass number $((++n)) Me didn't realize that {--,++} were supported. That appears to be useful -- thanks. --zeurkous. -- Friggin' Machines! ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: repeat count? 2023-01-16 18:05 repeat count? Dominik Vogt 2023-01-16 18:26 ` zeurkous 2023-01-16 19:04 ` Stephane Chazelas @ 2023-01-16 19:20 ` Roman Perepelitsa 2023-01-19 14:57 ` zeurkous 2 siblings, 1 reply; 12+ messages in thread From: Roman Perepelitsa @ 2023-01-16 19:20 UTC (permalink / raw) To: dominik.vogt, Zsh Users On Mon, Jan 16, 2023 at 7:06 PM Dominik Vogt <dominik.vogt@gmx.de> wrote: > > Is it possible to get the pass number of a repeat loop from within > the loop, or is it necessary to use a hand written counter? I just realized that none of the replies actually answered your question. There is no special parameter set by the shell that contains the iteration counter in repeat loops. I'd love to have that myself. Roman. ^ permalink raw reply [flat|nested] 12+ messages in thread
* RE: Re: repeat count? 2023-01-16 19:20 ` Roman Perepelitsa @ 2023-01-19 14:57 ` zeurkous 2023-01-19 16:37 ` Daniel Shahaf 0 siblings, 1 reply; 12+ messages in thread From: zeurkous @ 2023-01-19 14:57 UTC (permalink / raw) To: Roman Perepelitsa, dominik.vogt, Zsh Users On Mon, 16 Jan 2023 20:20:13 +0100, Roman Perepelitsa <roman.perepelitsa@gmail.com> wrote: > On Mon, Jan 16, 2023 at 7:06 PM Dominik Vogt <dominik.vogt@gmx.de> wrote: >> >> Is it possible to get the pass number of a repeat loop from within >> the loop, or is it necessary to use a hand written counter? > > I just realized that none of the replies actually answered your > question. There is no special parameter set by the shell that contains > the iteration counter in repeat loops. I'd love to have that myself. Then the question is: how would that work w/ nested repeat loops...? --zeurkous. > Roman. -- Friggin' Machines! ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: repeat count? 2023-01-19 14:57 ` zeurkous @ 2023-01-19 16:37 ` Daniel Shahaf 2023-01-19 17:49 ` Ray Andrews 0 siblings, 1 reply; 12+ messages in thread From: Daniel Shahaf @ 2023-01-19 16:37 UTC (permalink / raw) To: zsh-users zeurkous@blaatscaahp.org wrote on Thu, 19 Jan 2023 14:57 +00:00: > On Mon, 16 Jan 2023 20:20:13 +0100, Roman Perepelitsa > <roman.perepelitsa@gmail.com> wrote: >> On Mon, Jan 16, 2023 at 7:06 PM Dominik Vogt <dominik.vogt@gmx.de> wrote: >>> >>> Is it possible to get the pass number of a repeat loop from within >>> the loop, or is it necessary to use a hand written counter? >> >> I just realized that none of the replies actually answered your >> question. There is no special parameter set by the shell that contains >> the iteration counter in repeat loops. I'd love to have that myself. > > Then the question is: how would that work w/ nested repeat loops...? Let's see. Draft requirements: - Count from 1 upwards, incremented by 1 each iteration. - Be read-only.¹ - Remain set after the loop ends, to facilitate testing it to determine which iteration, if any, ran «break». - Be possible to have a «repeat» loop call a function and afterwards access its own iteration count, even if the function executes its own «repeat» loops. So: - The variable could have a well-known name, and loops that call functions before referencing the variable will need to save its value locally. - The variable's name could be specified by the user, as in «repeat -v i 42» and then store the iteration number in $i. This would be backwards incompatible in a corner case (the first word after «repeat» is a math expression, so syntaxes of the form «repeat -foo» or «repeat --bar» are valid today if SHORT_REPEAT hasn't been turned off). - Or perhaps the arithmetic for() is good enough for now and we don't need this syntactic sugar at all. Cheers, Daniel ¹ Mainly because I don't want to think about «repeat -v i 10 ((++i))» right now. If someone wants to spec a writable repeat count, go ahead. ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: repeat count? 2023-01-19 16:37 ` Daniel Shahaf @ 2023-01-19 17:49 ` Ray Andrews 0 siblings, 0 replies; 12+ messages in thread From: Ray Andrews @ 2023-01-19 17:49 UTC (permalink / raw) To: zsh-users On 2023-01-19 08:37, Daniel Shahaf wrote: > - Or perhaps the arithmetic for() is good enough for now and we don't > need this syntactic sugar at all. > Just a comment from the peanut gallery: I was thinking about that issue and the question arose in my head whether or not something that is so easy to do manually should be hard coded even in the best of all possible worlds. Bigger code, new hardcoded variable, minute but still possible bug of some sort, an extra microsecond to compile and run, slightly bigger doc needed. Small issues, but small issues add up over time, and since there is no *real* problem, why bother? Contrast ... dunno ... say the '-U' option with arrays. When I first discovered that I laughed like a loonie, it was so damned useful -- worth whatever weight it added to the shell. Featuritis can add entropy rather than reduce it. Little things can clutter more than they help. My 2 cents. ^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2023-01-19 17:50 UTC | newest] Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2023-01-16 18:05 repeat count? Dominik Vogt 2023-01-16 18:26 ` zeurkous 2023-01-16 18:49 ` Roman Perepelitsa 2023-01-16 19:17 ` Marc Chantreux 2023-01-19 14:50 ` zeurkous 2023-01-16 19:04 ` Stephane Chazelas 2023-01-16 19:05 ` Stephane Chazelas 2023-01-19 14:52 ` zeurkous 2023-01-16 19:20 ` Roman Perepelitsa 2023-01-19 14:57 ` zeurkous 2023-01-19 16:37 ` Daniel Shahaf 2023-01-19 17:49 ` Ray Andrews
Code repositories for project(s) associated with this public inbox https://git.vuxu.org/mirror/zsh/ This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).