Portál AbcLinuxu, 12. května 2024 07:09


Dotaz: bash, vnořené smyčky

1.4.2005 11:02 Jáchym Čepický | skóre: 29 | blog: U_Jachyma
bash, vnořené smyčky
Přečteno: 330×
Odpovědět | Admin
zdarvím, mám potřebuji mít ve skriptu vnořenou smyčku, ale vnější smyčka se ukoční po úplném proběhnutí smyčky vnitřní :-/

Mám to asi takhle:
### řádky
while [ `echo $south $maxsouth |awk '{
            sou=sprintf("%.3f",$1); 
            max=sprintf("%.3f",$2); 
            printf("%d", sou <= max);
         }'` == 1 ];
do 
     ### sloupce
     while [ `echo $east $maxeast |awk '{
                eas=sprintf("%.3f",$1); 
                max=sprintf("%.3f",$2); 
                printf("%d", eas <= max);
             }'` == 1 ];
    do 
        echo n=$north s=$south w=$west e=$east;
        west=$east
        east=`echo "($west + $estep)" |bc -l`;
    done

    north=$south
    south=`echo "($north - $nstep)" |bc -l`;
done;
umí vůbec bash něco jako vnořené smyčky? neukončí se prostě při slouvíčku done ?

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

Odpovědi

Josef Kufner avatar 1.4.2005 11:08 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: bash, vnořené smyčky
Odpovědět | | Sbalit | Link | Blokovat | Admin
Vnorene smycky samozrejme umi. Dej si tam par debug vypisu, hlavne pred posledni done, aby jsi si zkontroloval, ze $south opravdu obsahuje to co obsahovat ma, aby se splnila podminka vnejsiho cyklu i pro dalsi pruchod.

jinak to echo je zbytecny,
awk '...' <<< "$east $maxeast"
pokud vim, udela totez
Hello world ! Segmentation fault (core dumped)
1.4.2005 11:29 Jáchym Čepický | skóre: 29 | blog: U_Jachyma
Rozbalit Rozbalit vše Re: bash, vnořené smyčky
jj, dík za tipy.

zapoměl jsem vrátit hodnoty pro vnitřní smyčku co nejvíc na západ:
[...]
   done
    north=$south
    south=`echo "($north - $nstep)" |bc -l`;
    
    # go WEST
    west=$maxwest;
    east=`echo  "($west + $estep)" |bc -l`;
done;
[...]

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.