Portál AbcLinuxu, 25. dubna 2024 00:40


Dotaz: Samovoľné zastavenie cyklu for

23.10.2008 23:32 pupala | skóre: 21
Samovoľné zastavenie cyklu for
Přečteno: 204×
Odpovědět | Admin
Skript skončí 3. opakovaním cyklu aj keď mu zadám na vstupe 5 hodnôt.
Čím to je spôsobené?
Chybu žiadnu nevypíše, vyzerá ako by legitímne skončil.
#!/bin/sh
 
set -x
 
echo "Skript by mal citat vstupny riadok zadavany na klavesnici,"
echo "priradit ho do pola s nazvom, aky mu zadas pri spusteni"

echo "Zadaj meno pola:"
read x
echo "1"
echo "$x"
echo "2"
read -a  "$x"
echo "3"
echo "4"
eval echo \${$x[@]\}
echo "5 zaciname for"
z=0
for i in eval echo \${$x[@]\};
do
        echo "Premanna z ma hodnotu "$z""
        eval echo \${$x[$z]\}
        z=$(($z+1))
 
done
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

24.10.2008 02:19 Jirka P
Rozbalit Rozbalit vše Re: Samovoľné zastavenie cyklu for
Odpovědět | | Sbalit | Link | Blokovat | Admin
for i in $(eval echo \${$x[@]\});
Taková trapná chyba...
24.10.2008 06:43 pupala | skóre: 21
Rozbalit Rozbalit vše Re: Samovoľné zastavenie cyklu for
Ďakujem,
len začínam v bash, a som z tých substitúcií riadne domiešaný.
Prečo to skončilo práve 3. prechodom cyklom?
24.10.2008 08:16 Vojtěch Horký | skóre: 39 | blog: Vojtův zápisník | Praha
Rozbalit Rozbalit vše Re: Samovoľné zastavenie cyklu for
Prečo to skončilo práve 3. prechodom cyklom?

Cyklilo to přes tyhle 3 slova: eval, echo a \${$x[@]\}.

som z tých substitúcií riadne domiešaný

Ještě to vylepšim :-) - místo $( příkaz ) se taky používá `příkaz`.

I am always ready to learn although I do not always like to be taught. (W. Churchill)
24.10.2008 15:56 pupala | skóre: 21
Rozbalit Rozbalit vše Re: Samovoľné zastavenie cyklu for
Toto s ` ` som skúsil, ale chybne, t.j. eval `echo \${$x[@]\}`. Bash sa len učím a zložené substitúcie mi robia problém.
Nejde mi do hlavy poradie ich vykonávania. Nemám v tom vôbec nijakú prax. A aj keď pri tom čítam nejakú dokumentáciu,
tak sa po chvíli zamotám.
Ďakujem Vám.

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.