bash: cyklus while a nastaveni promenne
Vladimir Macek
macek na sandbox.cz
Středa Srpen 5 11:56:01 CEST 2015
Jde o to, ze znak | zpusobi, ze prikaz za nim je soucasti jineho prostredi,
ktere se zrusi po skonceni toho prikazu.
Pokud mate bash verze >= 4.2, muzete to obejit tim, ze predtim provedete
shopt -s lastpipe
A mimochodem, prikaz "grep soubor.txt" hleda vzor 'soubor.txt' ve
standardnim vstupu.
A toto by taky mohlo stacit pro inkrementaci:
((citac += 1))
Jeste neco, pokud by pozadovana funkcnost pipeline byla opravdu takovato,
tak by se to cele dalo resit jeste jednoduseji a efektivneji.
VM
On 5.8.2015 11:28, "Zdeněk Kaminski" wrote:
> Dobry den,
>
> po dlouhe dobe jdu neco psat v bashi a vim, ze konstrukce typu:
>
> citac=0
> grep soubor.txt | while read vzor1 vzor2 vzor3; do
> citac=$(($citac + 1 ))
> echo $citac
> done
> echo $citac
>
> mi na uplnem konci vypise 0.
>
> Ja vsak potrebuji hodnotu promenne citac nastavenou v cyklu zachovat. A uz
> si nevzpominam, jak to inteligentne udelat. A ukladat si ji po kazdem
> pruchodu do souboru a potom ji z nej precit mi prijde uchylne.
>
> Nakopnete me prosim? Dival jsem se i do manualove stranky bashe, ale bud
> jsem slepy, nebo nevidim :-(
>
> Diiiky.
Další informace o konferenci Linux