Portál AbcLinuxu, 6. prosince 2025 04:40
Tak je to správně, tak to má fungovat. Pokud chcete zpracovávat text po řádcích, použijte cyklus while s příkazem read, např:
i=0
while read; do
printf "%6d: %s\n" $[++i] "$REPLY"
done <file
Ten cyklus se chová jako složený příkaz, který se dá použít i s rourou:
who | while read; do
....
done
Jen v případě, že potřebujete, aby tělo cyklu mohlo měnit proměnné tak, aby se to projevilo i mimo cyklus, je potřeba použít trik popsaný tady.
pro konkrétní řetězec lze použít konstrukci
... <<<"string"nebo tradiční
echo "string" | ...
ale spolu se zpracováním po řádcích to moc smysl nedává.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.