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

< Previous Next >
Re: [opensuse-programming-de] Pipe ueber FIFO
  • From: Christian Boltz <suse@xxxxxxxxx>
  • Date: Fri, 8 Oct 2010 22:13:50 +0200
  • Message-id: <201010082213.51138@xxxxxxxxxxxxxxx>
Hallo Thomas, hallo Leute,

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)

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

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/


Gruß

Christian Boltz
--
Wozu überhaupt ein Script? Das kann man auch direkt aufrufen.
Immer dieser Rationalisierungswahn. Demnächst verlangen einige
Gurus noch, dass direkt in Binärcode geschrieben wird...
[Sandy Drobic in suse-linux]
--
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