Sziasztok!
Elakadtam rendesen egy szkript írásában.
Egy file tartalmát akarom sorról sorra beolvasni és keresni benne egy bizonyos szöveget.
Mindezt file descriptor segítségével. (Ez feltétlenül szükséges!)
Viszont ha a keresett szöveg nincs a fileban, akkor honnan tudja a ciklus, hogy elérkezett a file végéhez?
Sajnos vannak üres sorok is benne meg olyanok is amikben csak egy vagy több tab szerepel.
Tehát az első próbálkozásom, hogy ha a beolvasott sor nem tartalmaz semmit, akkor kiugrik a ciklusból sajna kudarcot vallott.
Persze sed segítségével kivehetném előzetesen a fileból ezeket a sorokat, de engem piszkál, hogy csak kell lennie valami előredefiniált változónak vagy nemtudom minek a file végének jelzésére.
Kb 2 órán keresztül gugliztam utána, de nem találtam semmit.
A kódrészlet:
for (( ; ; ))
do
read a <&5
if [ "$a" == "" ]; then return 1; fi
if [ "$a" == "blablabla" ]; then return 0; fi
done
Valahol a read parancs után mit kellene ellenőrizni?
Vagy a for ciklus utasításban lehetne valami EOF-ra utaló feltételt megadni?