Re: Pipe ueber FIFO
Thomas Moritz <[email protected]> Sat, 9 Oct 2010 06:14:11 +0200
| Newsgroups | gmane.linux.suse.programming |
|---|---|
| Organization | - |
| Message-ID | <[email protected]> |
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