Ich suche nach einer Implementierung eines ‚cacheme‘ Befehl, die ‚memoizes‘ die Ausgabe von was auch immer in ARGV hat. Wenn es nie ausgeführt wird, wird es es laufen lassen und die Ausgabe etwas merken. Wenn es ausgeführt wird, kopiert es nur die Ausgabe der Datei (oder noch besser, beide Ausgabe und Fehler zu & 1 bzw. & 2).Kann ich die Ausgabe eines Befehls unter Linux von CLI zwischenspeichern?
Nehmen wir an, jemand schrieb diesen Befehl, es würde so funktionieren.
$ time cacheme sleep 1 # first time it takes one sec
real 0m1.228s
user 0m0.140s
sys 0m0.040s
$ time cacheme sleep 1 # second time it looks for stdout in the cache (dflt expires in 1h)
#DEBUG# Cache version found! (1 minute old)
real 0m0.100s
user 0m0.100s
sys 0m0.040s
Dieses Beispiel ist ein bisschen dumm, weil es keine Ausgabe hat. Im Idealfall würde es auf einem Skript wie sleep-1-and-echo-hello-world.sh getestet werden.
Ich habe ein kleines Skript erstellt, das eine Datei in/tmp/mit Hash von vollem Befehlsnamen und Benutzernamen erstellt, aber ich bin mir ziemlich sicher, dass etwas bereits existiert.
Ist Ihnen das bekannt?
Was ist der Anwendungsfall? Warum würdest du das wollen? –
Zum Beispiel, ein Skript, das Ewigkeiten zur Ausführung benötigt, aber normalerweise eine konsistente Ausgabe liefert, in Fällen, in denen Sie nicht daran interessiert sind, eine neue Antwort zu haben, sondern nur eine gute, nicht zu alte Version. – Riccardo
Dies ist sehr nah dran, was 'make' macht –