Rico Koerner rico@netbreaker.de (Di 16 Feb 2010 20:21:28 CET):
Am 13.2.2010 10:09, schrieb Heiko Schlittermann:
Weil Dein „while“ hinter eine Pipeline ist, ist es ein Sub-Process, also eine andere Shell.
(…)
while read LINE; do …. done<(gocr scan.png | tac) echo "$OCR_DATA"> ocrdata.txt
So ähnlich hab ich es inzwischen gelöst: ... done << EOF $(gocr ...) EOF
Irgendwie wollte das ohne EOF bei mir direkt hinter done nicht klappen. Da war wohl ein < oder $ vor der Klammer zuviel bei mir.
Du machst Command-Substitution „$(gocr …)“, ich mache oben Process-Substitution „<(gocr …)“. Meine Variante kann theoretisch auch mit „unendlich“ vielen Daten umgehen, bei Dir werden die Daten im RAM zwischengelagert und dürfen selbst kein „EOF“ am Zeilenanfang enthalten.