Am Freitag, 8. Oktober 2010 22:13:50 schrieb Christian Boltz: Hallo Christian,
Am Freitag, 8. Oktober 2010 schrieb Thomas Moritz:
Am Freitag, 8. Oktober 2010 11:39:35 schrieb Thomas Moritz:
Am Freitag, 8. Oktober 2010 07:44:43 schrieb Thomas Moritz: Bevor David wieder was zu meckern hat... :-) Den FIFO erzeuge ich jetzt aus Sicherheitsgruenden mit mktemp.
myfifo=$(mktemp myfifo.XXXXXX) rm -f $myfifo mkfifo $myfifo
Damit hast Du das Risiko immerhin auf eine race condition reduziert ;-) (jemand könnte theoretisch zwischen rm und mkfifo eine Datei oder einen Symlink anlegen)
Das ist zwar knapp, aber zumindest theoretisch moeglich.
mktemp kann leider selbst keinen FIFO anlegen, aber es gibt eine sichere Lösung: mktemp -d und dann in diesem Verzeichnis mkfifo ;-) Außerdem solltest Du bei einem Fehlschlag das Script abbrechen.
Ungetestet: mytempdir=$(mktemp -d meinscript.XXXXXX) || exit 1 mkfifo "$mytempdir/myfifo" || exit 1
Danke fuer den Tip!
Zu Deinem eigentlichen Problem "Variablen sollen nach der Subshell noch verfügbar sein" brauchst Du übrigens nicht unbedingt einen FIFO. Es gibt verschiedene Varianten (Ausgabekanäle, "Verlängerung" der Subshell usw.) - siehe http://www.cboltz.de/de/linux/bash/
Oh man, Deine Seite habe ich sogar in den Lesezeichen! Danke und ein schoenes Wochenende. MfG Th. Moritz -- To unsubscribe, e-mail: opensuse-programming-de+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-programming-de+help@opensuse.org