[ksh] Export in der Pipe erhalten?

Hallo,

ich habe folgendes Problem:

Die folgende Funtion exportiert mir Variablen mit quasi beliebigen Namen vom Stdin für die weitere Verwendung:
Die Idee ist, daß der stdin „erhalten“ bleibt, d.h. das, was rausgelesen wurde, wieder weggeschrieben wird.

function cacheInto
{
 while [$# != 0] ; do
 read $1
 export $1
 eval "echo \$`echo $1`";
 shift;
 done
}

Eigentlich funktioniert das Ganze okay:
Im Skript aufgerufen

 echo "A" | cacheInto var1; 
echo $var1

Resultat:

A
A

Wenn ich es jedoch in der Pipe aufrufe:

echo "A" | cacheInto var1 | cat
echo $var1

Resultat:

A

D.h. die Export-Variable bleibt nur in der Pipe wieder erhalten.

Nun meine Frage:
wie kann ich dafür sorgen, daß die Variable die Pipe „überlebt“?

Dankeschön,
Mike