* [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