michaels hat geschrieben:
sollte es nicht einfach:
sein!?
Aber die Leerzeichen um das Gleichheitszeichen müssen weg.
crischi hat geschrieben:
Problem ist nur, die Variable bleibt leer. Was mache ich falsch, bin ich auf dem Holzweg?
So pauschal kann man das nicht sagen. In der ksh beispielsweise funktioniert das so. Du verwendest vermutlich die bash; deren Manpage sagt:
Each command in a pipeline is executed as a separate process (i.e., in a subshell).
Dein Aufruf ist also gleichbedeutend mit:
var ist damit nur in der Subshell existent und kann nicht in die Elternshell übernommen werden.
Die ksh führt das *letzte* Kommando einer Pipeline in der Elternshell aus, falls möglich, um eben solche read-Konstrukte zu ermöglichen. Wenn komplexere Konstrukte (while, for) im Spiel sind, ist das meist nicht möglich. Erwähnt sei, dass dieses Verhalten der ksh in ihrer Geschichte gewechselt hat.