ALT Linux Community general discussions
 help / color / mirror / Atom feed
* [Comm] Цикл в командной строке.
@ 2004-05-05  9:28 Dolgov OV
  2004-05-05  9:50 ` Gennadiy Redko
  0 siblings, 1 reply; 8+ messages in thread
From: Dolgov OV @ 2004-05-05  9:28 UTC (permalink / raw)
  To: community

Здравствуйте.

Смейтесь, не смейтесь, но я уже голову сломал. Может вопрос и
примитивный, но для _не программиста_ вроде меня даже русский man bash
не помогает %-(

Как в командной строке запустить цикл с присвоением переменной i
числового значения от 1 до 999, или скажем не до 999, а до первой
ошибки?

надо что-то типа
for i=1 ; do "чего-то над $i" && i=i+1 ; done

В общем выполнять цикл до тех пор, пока do чего-то (а конкретней wget)
не вернет ошибку.

-- 
С наилучшими,
Олег Долгов
<dov AT media-link DOT info>
Registered Linux user #315454


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Comm] Цикл в командной строке.
  2004-05-05  9:28 [Comm] Цикл в командной строке Dolgov OV
@ 2004-05-05  9:50 ` Gennadiy Redko
  2004-05-05 10:21   ` Andrew Borodin
  2004-05-05 10:32   ` Dolgov OV
  0 siblings, 2 replies; 8+ messages in thread
From: Gennadiy Redko @ 2004-05-05  9:50 UTC (permalink / raw)
  To: community

Dolgov OV пишет:
> Здравствуйте.
> 
> Смейтесь, не смейтесь, но я уже голову сломал. Может вопрос и
> примитивный, но для _не программиста_ вроде меня даже русский man bash
> не помогает %-(
> 
> Как в командной строке запустить цикл с присвоением переменной i
> числового значения от 1 до 999, или скажем не до 999, а до первой
> ошибки?
> 
> надо что-то типа
> for i=1 ; do "чего-то над $i" && i=i+1 ; done
> 
> В общем выполнять цикл до тех пор, пока do чего-то (а конкретней wget)
> не вернет ошибку.
> 
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> Community mailing list
> Community@altlinux.ru
> http://lists.altlinux.ru/mailman/listinfo/community

Я не большой знаток программирования на bash, но почему for а не while ?

$ man bash

.................................................................................................
while list; do list; done
until list; do list; done
               The while command continuously executes the do list as 
long  as
               the  last  command  in list returns an exit status of 
zero.  The
               until command is identical to the while command, except 
that the
               test  is  negated;  the  do list is executed as long as 
the last
               command in list returns a non-zero exit status.  The exit 
status
               of  the  while and until commands is the exit status of 
the last
               do list command executed, or zero if none was executed.
..........................................................................................................
Это не то, что Вы хотели?



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Comm] Цикл в командной строке.
  2004-05-05  9:50 ` Gennadiy Redko
@ 2004-05-05 10:21   ` Andrew Borodin
  2004-05-05 11:08     ` Dolgov OV
  2004-05-05 10:32   ` Dolgov OV
  1 sibling, 1 reply; 8+ messages in thread
From: Andrew Borodin @ 2004-05-05 10:21 UTC (permalink / raw)
  To: community

On Wed, May 05, 2004 at 12:50:30PM +0300, Gennadiy Redko wrote:
> >
> >Как в командной строке запустить цикл с присвоением переменной i
> >числового значения от 1 до 999, или скажем не до 999, а до первой
> >ошибки?
> >
> >надо что-то типа
> >for i=1 ; do "чего-то над $i" && i=i+1 ; done
> >
> >В общем выполнять цикл до тех пор, пока do чего-то (а конкретней wget)
> >не вернет ошибку.
> >
> >http://lists.altlinux.ru/mailman/listinfo/community
> 
> Я не большой знаток программирования на bash, но почему for а не while ?

Можно и for.

$ for ((i=0; i<3; i++)); do echo $i; done
0
1
2
$
-- 

С уважением,
А. Бородин.


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Comm] Цикл в командной строке.
  2004-05-05  9:50 ` Gennadiy Redko
  2004-05-05 10:21   ` Andrew Borodin
@ 2004-05-05 10:32   ` Dolgov OV
  2004-05-05 11:50     ` [Comm] " Michael Shigorin
  2004-05-06  5:00     ` [Comm] " Mike Lykov
  1 sibling, 2 replies; 8+ messages in thread
From: Dolgov OV @ 2004-05-05 10:32 UTC (permalink / raw)
  To: community

On Wed, 05 May 2004 12:50:30 +0300
Gennadiy Redko <uit1@zaz.zp.ua> wrote:
> > надо что-то типа
> > for i=1 ; do "чего-то над $i" && i=i+1 ; done
> > 
> > В общем выполнять цикл до тех пор, пока do чего-то (а конкретней
> > wget) не вернет ошибку.
> > 
> $ man bash
> 
> .....................................................................
> ............................ while list; do list; done
> until list; do list; done
>                The while command continuously executes the do list as 
> long  as
>                the  last  command  in list returns an exit status of 
> zero.  The
>                until command is identical to the while command, except
>                
> that the
>                test  is  negated;  the  do list is executed as long as
>                
> the last
>                command in list returns a non-zero exit status.  The
>                exit 
> status
>                of  the  while and until commands is the exit status of
>                
> the last
>                do list command executed, or zero if none was executed.
> .....................................................................
> ..................................... 
>Это не то, что Вы хотели?
 
Это я читал, и даже на русском :-\
Меня интересует КАК заставить переменную $i принимать последовательно
значения 1,2,3 и т.д. Команду for я привел для примера, дабы попытаться
_на пальцАх_ изложить свою сумбурную мысль :-)

P.S. Как говаривал один мой знакомы программист, пытаясь ответить на
очередной мой вопрос: "Трудно понять логику непрофессионала..."

-- 
С наилучшими,
Олег Долгов
<dov AT media-link DOT info>
Registered Linux user #315454


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Comm] Цикл в командной строке.
  2004-05-05 10:21   ` Andrew Borodin
@ 2004-05-05 11:08     ` Dolgov OV
  2004-05-05 11:44       ` Gennadiy Redko
  0 siblings, 1 reply; 8+ messages in thread
From: Dolgov OV @ 2004-05-05 11:08 UTC (permalink / raw)
  To: community

On Wed, 5 May 2004 14:21:32 +0400
Andrew Borodin <borodin@zarya-k.ru> wrote:
> Можно и for.
> 
> $ for ((i=0; i<3; i++)); do echo $i; done
> 0
> 1
> 2
> $

Решил вопрос через while, хотя for выглядит красивей :-) Получилось
нечто:

$ let i=1 ; while wget http://где-то/$i.mid ; do let i+=1 ; done

Вроде гребет пока :-), когда нарвется на несуществующий файл, выпадет.
Что и требовалось.

Спасибо.
-- 
С наилучшими,
Олег Долгов
<dov AT media-link DOT info>
Registered Linux user #315454


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Comm] Цикл в командной строке.
  2004-05-05 11:08     ` Dolgov OV
@ 2004-05-05 11:44       ` Gennadiy Redko
  0 siblings, 0 replies; 8+ messages in thread
From: Gennadiy Redko @ 2004-05-05 11:44 UTC (permalink / raw)
  To: community

Dolgov OV пишет:
> On Wed, 5 May 2004 14:21:32 +0400
> Andrew Borodin <borodin@zarya-k.ru> wrote:
> 
>>Можно и for.
>>
>>$ for ((i=0; i<3; i++)); do echo $i; done
>>0
>>1
>>2
>>$
> 
> 
> Решил вопрос через while, хотя for выглядит красивей :-) Получилось
> нечто:
> 
> $ let i=1 ; while wget http://где-то/$i.mid ; do let i+=1 ; done
> 
> Вроде гребет пока :-), когда нарвется на несуществующий файл, выпадет.
> Что и требовалось.
Я конечно извиняюсь, но может быть wget с какими-то опциями уже умеет то,
что Вы пытаетесь ее (wget) заставить делать с помощью внешней логики?



^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Comm] Re: Цикл в командной строке.
  2004-05-05 10:32   ` Dolgov OV
@ 2004-05-05 11:50     ` Michael Shigorin
  2004-05-06  5:00     ` [Comm] " Mike Lykov
  1 sibling, 0 replies; 8+ messages in thread
From: Michael Shigorin @ 2004-05-05 11:50 UTC (permalink / raw)
  To: community

On Wed, May 05, 2004 at 01:32:13PM +0300, Dolgov OV wrote:
> Меня интересует КАК заставить переменную $i принимать
> последовательно значения 1,2,3 и т.д.

for i in `seq 1 3`; do echo $i; done

> P.S. Как говаривал один мой знакомы программист, пытаясь
> ответить на очередной мой вопрос: "Трудно понять логику
> непрофессионала..."

PS: а мож просто попросить те миды, все равно еще про АП
договариваться? ;-)

-- 
 ---- WBR, Michael Shigorin <mike@altlinux.ru>
  ------ Linux.Kiev http://www.linux.kiev.ua/


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Comm] Цикл в командной строке.
  2004-05-05 10:32   ` Dolgov OV
  2004-05-05 11:50     ` [Comm] " Michael Shigorin
@ 2004-05-06  5:00     ` Mike Lykov
  1 sibling, 0 replies; 8+ messages in thread
From: Mike Lykov @ 2004-05-06  5:00 UTC (permalink / raw)
  To: community

В сообщении от Среда 05 Май 2004 15:32 Dolgov OV написал:

> Меня интересует КАК заставить переменную $i принимать последовательно
> значения 1,2,3

man seq

 seq - print a sequence of numbers

-- 
Mike



^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2004-05-06  5:00 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-05-05  9:28 [Comm] Цикл в командной строке Dolgov OV
2004-05-05  9:50 ` Gennadiy Redko
2004-05-05 10:21   ` Andrew Borodin
2004-05-05 11:08     ` Dolgov OV
2004-05-05 11:44       ` Gennadiy Redko
2004-05-05 10:32   ` Dolgov OV
2004-05-05 11:50     ` [Comm] " Michael Shigorin
2004-05-06  5:00     ` [Comm] " Mike Lykov

ALT Linux Community general discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/community/0 community/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 community community/ http://lore.altlinux.org/community \
		mandrake-russian@linuxteam.iplabs.ru community@lists.altlinux.org community@lists.altlinux.ru community@lists.altlinux.com
	public-inbox-index community

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.community


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git