Mailinglist Archive: opensuse-programming-de (17 mails)

< Previous Next >
Re: [opensuse-programming-de] Pipe ueber FIFO
  • From: Thomas Moritz <thm_ml@xxxxxxxxxxx>
  • Date: Sat, 9 Oct 2010 06:14:11 +0200
  • Message-id: <201010090614.11416.thm_ml@xxxxxxxxxxx>
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@xxxxxxxxxxxx
For additional commands, e-mail: opensuse-programming-de+help@xxxxxxxxxxxx

< Previous Next >
List Navigation
Follow Ups