Gibt es ein Dienstprogramm, das das Speichern und Wiederherstellen von Bash-Sitzungen optimiert? Ich würde gerne EG machen können
$ KUNG=pao
$ foo commit # saves the current environment
# as an anonymous changeset from the previous savepoint
$ SCHNICKENS="What's up, doc?"
$ SCHNICKENS="$(echo Schmoove)"
$ unset KUNG
$ foo diff HEAD # outputs a $(set) of commands
# which comprise the current changeset
unset KUNG;
SCHNICKENS="Schmoove"
$ foo branch edit-su-question # creates a new branch with that name
$ foo merge master # updates the current environment
# with any changes made to ~/.bashrc
# since it was branched or last merged
$ function fierce_fist_of_foo {
cut -f 2 | xargs -I {} bash foo {} '>>' ffof.out;
}
$ foo checkout master # switches current branch
# to the one checked out by ~/.bashrc
$ foo commit -m "learned the fierce_fist_of_foo technique"
# new interactive `bash` invocations now load that function
Aufgrund der Ähnlichkeit mit dem git
Befehlssatz bin ich versucht, ein obszönes Wort oder alternativ einen Smashing Pumpkins-Albumtitel als Befehlsnamen in diesem Beispiel zu verwenden. Aber gut, ole ist foo
es.
Ich begründe mein Vertrauen in die Funktionsfähigkeit dieses Konzepts weitgehend mit der Annahme, dass das Ausführen set
einer Bash-Shell ein aufrufbares Skript ergibt, mit dem diese Umgebung wiederhergestellt wird. Ich bin mir nicht sicher, ob das völlig stimmt.
Wie auch immer , gibt es da draußen etwas, das so funktioniert? Zusätzliche Punkte, wenn es tatsächlich git
als Teil seiner Implementierung verwendet. Ich akzeptiere diese Antwort. Da bist du nur für die Punkte drin und alles.
env
Sie jedoch keine Funktionsdefinitionen oder andere Dinge, bei denen ich mir nicht sicher bin. Auch die Kasse müssteunset
für-
Zeilen in der Diff s tun . Ich stellte mir vor, die Ausgabe vonset
Zuweisungenunset
,function
Anweisungen usw. zu analysieren und eine Reihe von Anweisungen zu erstellen, die erforderlich wären, um diese Änderung aufzurufen. Andere Dinge wieshopt
sollten auch enthalten sein.