Portál AbcLinuxu, 10. května 2025 05:35

Dotaz: BASH-Jak ukončit běh programu a znova spustit

18.10.2012 01:13 Martin
BASH-Jak ukončit běh programu a znova spustit
Přečteno: 301×
Odpovědět | Admin
Ahoj, poradil by mi někdo, jak v cyklu while zastavit na určitém místě a nepovolit dojetí do konce ale aby se začalo znova načítat to while.. Dík
while true
do
A..
...
...
B..
done
tohle běhá od A po B pořád dokola

takto to potřebuji
while true
do
A..
...
if ...STOP! nechoď dál ale začni číst zase od A
...
B..
done

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

18.10.2012 01:45 Jakub
Rozbalit Rozbalit vše Re: BASH-Jak ukončit běh programu a znova spustit
Odpovědět | | Sbalit | Link | Blokovat | Admin
Co příkaz continue?
18.10.2012 02:06 Martin
Rozbalit Rozbalit vše Re: BASH-Jak ukončit běh programu a znova spustit
Continue? A mužete být konkrétnější? Děkuji
18.10.2012 06:46 Ash | skóre: 53
Rozbalit Rozbalit vše Re: BASH-Jak ukončit běh programu a znova spustit
$ man bash
continue [n]
              Resume the next iteration of the enclosing for, while, until, or select loop.
18.10.2012 06:35 Ash | skóre: 53
Rozbalit Rozbalit vše Re: BASH-Jak ukončit běh programu a znova spustit
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nejjednodušší je ve vašem případě asi buď if STOP! then continue, nebo:
while true
do
A..
...
if ! STOP; then
  ...
  B..
fi
done
Pokud potřebujete nějaký náročnější restart, můžete vnořit i dva cykly a z vnitřního vyskočit breakem, čímž se dostanete do vnějšího a tím restartujete vnitřní.

P.S. "if STOP then CONTINUE" zní hloupě, v samodokumentujícím kódu by to chtělo upřesnit sémantiku
pepe_ avatar 18.10.2012 12:22 pepe_ | skóre: 48
Rozbalit Rozbalit vše Re: BASH-Jak ukončit běh programu a znova spustit

Prostě hledá goto :)

18.10.2012 12:55 Kit
Rozbalit Rozbalit vše Re: BASH-Jak ukončit běh programu a znova spustit
Něco na tom bude. Už použití while true svědčí o nezdravém programovacím stylu a jedno goto by tomu už neublížilo :-)

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.