Bash-Verlauf wird angehängt, aber Histappend ist deaktiviert

8

Ich bin auf Ubuntu 10.4 und meine Shell ist bash. Wenn ich mehrere Gnome-Terminals öffne und schließe, wird der Verlauf ordnungsgemäß angehängt. Wenn ich eintrete shopt, heißt es unter anderem:

histappend      off

Kann mir jemand sagen, wo das Anhängeverhalten konfiguriert ist?

Ludwig Weinzierl
quelle
1
'Ubuntu-10.04-lts' neu markieren, da Ubuntu-10.10 noch nicht verfügbar ist. obwohl ich höre, dass es etwas Erdmännchen genannt werden soll.
Quacksalber Quijote
1
Übrigens, meine Bash-Shells auf Lucid zeigen alle Histappend wie auf ... noch keine Optimierungen ... haben Sie Ihre Bash- Konfiguration bereits optimiert ?
Quacksalber Quijote
@quack: Danke, ich bin meiner Zeit wie immer voraus ;-)
Ludwig Weinzierl
@quack: Ich habe diese Installation mehrmals aktualisiert, daher bin ich mir nicht 100% sicher. Für mich ist es egal, ob histappend aktiviert oder deaktiviert ist, die Historie wird immer angehängt. Was mich wirklich interessiert ist, warum das passiert? Es wäre aufschlussreich, wenn Sie -u histappend shopt und mir sagen könnten, ob es in Ihrer Installation noch angehängt ist?
Ludwig Weinzierl

Antworten:

1

histappendist die Einstellung, die ich erwarten würde, um dies zu kontrollieren. Da dies keine Login-Shells sind, ist in /etc/bash.bash.logoutoder nichts los ~/.bash_logout. Überprüfen Sie durch Eingabe, ob eine Falle eingestellt ist trap -p. Auch tun , echo $PROMPT_COMMANDum zu sehen , ob etwas dort vor sich geht.

Bis auf weiteres angehalten.
quelle
echo $ PROMPT_COMMAND gibt echo -ne "\ 033] 0 zurück; $ {USER} @ $ {HOSTNAME}: $ {PWD / $ HOME / ~} \ 007". trap -p gibt nichts zurück. Ich habe kein /etc/bash.logout und ~ / .bash_logout enthält nichts, was den Verlauf betrifft.
Ludwig Weinzierl
1

bashversucht, den Verlauf so weit wie möglich anzuhängen. Mit histappendon garantieren Sie, dass immer der Verlauf angehängt wird. Wenn diese Option deaktiviert ist, wird der Verlauf nur bis zur Anzahl der Befehle Enterin einer interaktiven bashSitzung angehängt > HISTSIZE. In diesem Fall wird der Verlauf überschrieben.

Wenn Sie den Verlauf explizit überschreiben möchten, können Sie history -win .bash_logoutoder einen Exit-Trap verwenden.

In dieser Antwort habe ich ausführlicher beschrieben, wie das bashAnhängen von Verlaufsfunktionen funktioniert.

dosentmatter
quelle
-1

Ich habe einen kurzen Tipp zum Einstellen von histappend auf meiner Website geschrieben, aber ich werde den Beitrag hier umschreiben, um Ihre Frage zu beantworten, hoffe ich.

Sie sollten histappend mithilfe von shopt so konfigurieren können, dass es aktiviert ist.

So aktivieren Sie den Lauf

shopt -s histappend

Lauf deaktivieren

shopt -u histappend

Hilft das?

Elster
quelle