Portál AbcLinuxu, 6. května 2024 12:52


Dotaz: BASH nefunkcni read

5.1.2011 11:15 ext3fs
BASH nefunkcni read
Přečteno: 345×
Odpovědět | Admin
Ahoj,

resim nasledující problem viz priklad:
xxx(){
local V

    for ((;;))
    do
        echo -e\n "ctu2: "
        read V
    done

}

while read STR
    do
        echo -e\n "ctu1: "
        read V

        xxx

done < ./test
read jednoduse nefunguje a dojde k nekonecne smycce. Jak na to? Diky

Ř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

5.1.2011 12:23 Semo | skóre: 45 | blog: Semo
Rozbalit Rozbalit vše Re: BASH nefunkcni read
Odpovědět | | Sbalit | Link | Blokovat | Admin
Preco by nemalo dojst ku nekonecnej slucke, ked tam mas
for ((;;))
?
If you hold a Unix shell up to your ear, you can you hear the C.
5.1.2011 13:30 ext3fs
Rozbalit Rozbalit vše Re: BASH nefunkcni read
Pardon, ono k ni dojde, ale bez vyzvani k precteni z klavesnice (read).
5.1.2011 14:08 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: BASH nefunkcni read
Výzva se zobrazí (dokonce mnohokrát), ale v celém tom (vnějším) cyklu máte přesměrovaný standardní vstup, takže i uvnitř funkce se pořád čte ze souboru test.
5.1.2011 14:48 ext3fs
Rozbalit Rozbalit vše Re: BASH nefunkcni read
A lze to nejak resit?
5.1.2011 14:54 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: BASH nefunkcni read

Nejspíš ano, ale nejdřív budete muset napsat, co vlastně chcete, aby to dělalo. Pokud jde o to, aby vnější read četl ze souboru, ale vnitřní z terminálu (resp. standardního vstupu skriptu), tak např.

while read str <&3; do
  echo -n "prompt: "
  read line
  echo "str='$str', line='$line'"
done 3<test

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.