Ich möchte etwas Dateiähnliches erstellen (das wie eine normale Datei gelesen werden kann), das bei jedem Lesen die Ausgabe eines Befehls erhält.
Wenn ich beispielsweise dies tue echo $RANDOM > test
, kann ich anrufen cat test
und es wird die generierte Zufallszahl angezeigt.
Außer dass ich das jedes Mal bräuchte, wenn ich es aufrufe cat test
(oder es auf andere Weise lese), wird mein Generatorbefehl aufgerufen ( echo $RANDOM
in meinem Beispiel, aber tatsächlich werden mehr Daten generiert – etwa 1 KB).
Ich denke, die beste Lösung wäre, eine Art spezielle Gerätedatei/Gerätetreiber zu erstellen. Was ich brauche, ist tatsächlich ähnlich wie /dev/zero oder /dev/random. Ist es möglich, so etwas einfach zu erstellen? Die Verwendung einer Standard-GNU/SH-Bibliothek wäre ideal?
Vielen Dank im Voraus für jeden Hinweis!
Antwort1
Verwenden Sie die Funktion „Named Pipes“:
mkfifo myfancypipe;
while true; do bash -c 'echo $RANDOM' > myfancypipe; done
Gehen Sie nun zu einem anderen Terminal und rufen Sie jedes Mal auf:
cat myfancypipe
Infos erhalten Sie vonecho $RANDOM