[Ubuntu 8.04] hoe doe ik unset HISTFILESIZE in .bashrc

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • John_Glenn
  • Registratie: Augustus 2001
  • Laatst online: 28-08-2023

John_Glenn

verdeelt de whooping.

Topicstarter
Ik probeer te voorkomen dat mijn .bash_history bijgesnoeid wordt als ik bash afsluit, en aangezien ik tot nu toe in Red Hat 5.3 wegkwam met een enkel extra regeltje "unset HISTFILESIZE" in mijn .bashrc dacht ik dat in Ubuntu 8.04 (Hardy Heron) ook te kunnen. (bovendien staat volgens mij op de man page dat dit moet werken)

Als ik nu een nieuwe Gnome terminal open krijg ik echter nog steeds
user@host:~$ echo $HISTFILESIZE 
500

...en mijn .bash_history wordt ook nog steeds bijgesnoeid.

Ik heb ook al een extra regel "shopt -s histappend" aan .bashrc toegevoegd, maar ook dat maakt geen verschil.

Als ik aan de command prompt "unset HISTFILESIZE" invoer krijg ik wel mijn zin, maar daar heb ik natuurlijk weinig aan. Is dit een bug of mis ik iets?

---
edit:
user@host:~$ echo $HISTFILESIZE 
500
user@host:~$ source .bashrc
user@host:~$ echo $HISTFILESIZE 

user@host:~$ 

heu??? En toch weet ik zeker dat mijn .bashrc gelezen wordt als ik een Gnome terminal open, want andere instellingen die ik erin heb worden wel overgenomen!

[ Voor 16% gewijzigd door John_Glenn op 10-02-2009 01:20 ]


Acties:
  • 0 Henk 'm!

  • eamelink
  • Registratie: Juni 2001
  • Niet online

eamelink

Droptikkels

Dan wordt er waarschijnlijk nádat je .bashrc gelezen wordt nog een ander filetje gesourced waarin de oorspronkelijke setting van $HISTFILESIZE ingesteld wordt :)

Acties:
  • 0 Henk 'm!

  • John_Glenn
  • Registratie: Augustus 2001
  • Laatst online: 28-08-2023

John_Glenn

verdeelt de whooping.

Topicstarter
Thx, ik heb nu dus "unset HISTFILESIZE" naar de allerlaatste regel van mijn .bashrc verplaatst... maar ook dat maakt geen verschil!

Acties:
  • 0 Henk 'm!

  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 05-09 17:21

deadinspace

The what goes where now?

En als je in je .bashrc bij die unset ook eens
echo 'Hoi!'

er bij zet, krijg je dat dan ook te zien als je een nieuwe terminal opent?

Acties:
  • 0 Henk 'm!

  • John_Glenn
  • Registratie: Augustus 2001
  • Laatst online: 28-08-2023

John_Glenn

verdeelt de whooping.

Topicstarter
deadinspace schreef op dinsdag 10 februari 2009 @ 15:21:
En als je in je .bashrc bij die unset ook eens
echo 'Hoi!'

er bij zet, krijg je dat dan ook te zien als je een nieuwe terminal opent?
Ok, ik heb dat nu ook toegevoegd. Voor de volledigheid, dit is een diff van mijn .bashrc (waarbij de oude versie de standaard voor een nieuwe gebruiker aangemaakte versie is):
yungchin@D630:~$ bzr diff
=== modified file '.bashrc'
--- .bashrc	2009-02-09 22:50:27 +0000
+++ .bashrc	2009-02-10 22:52:11 +0000
@@ -91,3 +91,9 @@
 if [ -f /etc/bash_completion ]; then
     . /etc/bash_completion
 fi
+
+# no histfile truncating and store timestamps
+export HISTTIMEFORMAT='%c$ '
+shopt -s histappend
+unset HISTFILESIZE
+echo "test if .bashrc gets parsed"


en bij het openen van een verse terminal krijg ik dan dus:
test if .bashrc gets parsed
yungchin@D630:~$ echo $HISTFILESIZE 
500
yungchin@D630:~$ 


:(

[ Voor 0% gewijzigd door John_Glenn op 10-02-2009 23:59 . Reden: cmd-blok is leesbaarder dan code-blok... ]


Acties:
  • 0 Henk 'm!

  • magistus
  • Registratie: December 2001
  • Laatst online: 18-07-2024
uit manpage van bash (debian Lenny weliswaar)

HISTFILESIZE
The maximum number of lines contained in the history file. When
this variable is assigned a value, the history file is truncated, if
necessary, by removing the oldest entries, to contain
no more than that number of lines. The default value is 500.
The history file is also truncated to this size after writing it
when an interactive shell exits.

Naar mijn idee, zou dus altijd de default gepakt worden indien HISTFILESIZE niet is gedefined. Wat je dus met unset doet. Probeer em anders eens gewoon op 0 te zetten?

Acties:
  • 0 Henk 'm!

  • John_Glenn
  • Registratie: Augustus 2001
  • Laatst online: 28-08-2023

John_Glenn

verdeelt de whooping.

Topicstarter
magistus schreef op woensdag 11 februari 2009 @ 00:25:
When this variable is assigned a value, the history file is truncated, ...
Dus als er geen value assigned is.... was mijn interpretatie (plus: het werkt inderdaad zo in RHEL...).
Probeer em anders eens gewoon op 0 te zetten?
Mijn .bashrc eindigt nu dus in
+export HISTFILESIZE=0
+echo "test if .bashrc gets parsed"


Nieuwe terminal:
test if .bashrc gets parsed
yungchin@D630:~$ echo $HISTFILESIZE 
0
yungchin@D630:~$ history
    1  Wed 11 Feb 2009 00:13:06 GMT$ echo $HISTFILESIZE 
    2  Wed 11 Feb 2009 00:13:19 GMT$ history
yungchin@D630:~$


Dit werkt dus wel... alleen heb ik nu geen history :+ :'(


Edit: ik denk dat ik er maar een bug report van draai; want verderop in de man page staat ook nog
If HISTFILESIZE is not set, no truncation is performed.
Bedankt voor het meedenken!

Edit2: ik loop ook slap te kletsen dat het op RHEL wel werkt. Ik log net in op mn werk-PC om dit nog eens te testen... daar werkt het ook helemaal niet! Het enige verschil is dat daar blijkbaar de default 1000 is, zodat ik daar geen truncation had opgemerkt.... |:(

Edit3: ik had natuurlijk ook gewoon in de code kunnen kijken, ipv al dat blackbox-getest :P Sorry, ik ben niet erg op dreef. Maar goed, daar vinden we dus dat inderdaad eerst bashrc wordt geladen, en als dan HISTSIZE niet ingesteld is, wordt die waarde op 500 gezet, en als HISTFILESIZE niet gegeven is wordt die gelijk gesteld aan HISTSIZE..... en dat is niet alleen in bash 3.2, maar ook al in bash 2.05 bijvoorbeeld. Bron: ftp://ftp.gnu.org/gnu/bash/

[ Voor 37% gewijzigd door John_Glenn op 11-02-2009 03:51 ]

Pagina: 1