Ich setze export HISTSIZE=99999999999999
aber ist das der beste Weg? Ich weiß nicht, ob ein Überlauf auftreten könnte. Ich suche nach einer getesteten, zuverlässigen Methode zum Entfernen von Beschränkungen des Befehlsverlaufs.
Ich setze export HISTSIZE=99999999999999
aber ist das der beste Weg? Ich weiß nicht, ob ein Überlauf auftreten könnte. Ich suche nach einer getesteten, zuverlässigen Methode zum Entfernen von Beschränkungen des Befehlsverlaufs.
Antworten:
es ist in der Tat nicht (gut) dokumentiert und ich schätze, 99% der Bash-Benutzer, die dies geplant haben, setzen HISTSIZE auf eine sehr große Anzahl.
In der GNU wird der Bash-Verlauf über die mächtige Readline-Bibliothek abgewickelt. Die Bibliothek hat die Option, die Größe des Verlaufs zu begrenzen ("Stifle" im Readline-Jargon) oder nicht, und bash setzt den Readline-Verlauf einfach auf "Stifled / Unstifled". Wenn Sie sich zB GNU bash Version 4.2, Datei variables.c, Zeile 4443, Funktion void sv_histize (char *) ansehen, finden Sie diesen Kommentar (und das gesamte Ein- und Ausblenden in der folgenden Funktion):
/ * Was ist zu tun, nachdem sich die Variablen HISTSIZE oder HISTFILESIZE geändert haben?
Wenn es einen Wert für diese HISTSIZE gibt (und dieser numerisch ist), ersticken Sie den Verlauf. Andernfalls können
Sie den Verlauf entstören , wenn für diese Variable kein Wert vorhanden ist . Wenn der Name HISTFILESIZE lautet und der Wert
numerisch ist, kürzen Sie die Verlaufsdatei so, dass sie nicht mehr als so viele
Zeilen enthält. * /
Das sollte also den Trick machen:
export HISTSIZE=""
Und auch das (wenn Sie sich trotzig fühlen):
export HISTSIZE="GOTCHA"
Hoffe das hilft.