la storia di bash è stata aggiunta, ma histappend è disattivata


8

Sono su Ubuntu 10.4 e la mia shell lo è bash. Quando apro diversi terminali di gnome e li chiudo, la cronologia viene aggiunta correttamente. Quando entro shopt, dice tra l'altro:

histappend      off

Qualcuno può dirmi dove è configurato il comportamento append?


1
ricodificare 'ubuntu-10.04-lts' poiché ubuntu-10.10 non è ancora uscito. anche se ho sentito che si chiamerà qualcosa Meerkat.
Quack Quixote

1
a proposito, le mie shell bash su Lucid mostrano tutte histappend come su ... nessuna modifica ancora ... hai già modificato la tua configurazione bash ?
Quack Quixote

@quack: grazie, sono in anticipo sui tempi, come sempre ;-)
Ludwig Weinzierl

@quack: ho aggiornato questa installazione più volte, quindi non sono sicuro al 100%. Per me non importa se histappend è attivato o disattivato, la cronologia viene sempre aggiunta. Ciò di cui sono davvero curioso è perché questo accade? Sarebbe perspicace, se potessi acquistare -u histappend e dirmi se è ancora aggiunto nella tua installazione?
Ludwig Weinzierl,

Risposte:


1

histappendè l'impostazione che mi aspetto di controllare. Dal momento che quelli non sono shell di login, non sarà qualcosa in corso in /etc/bash.bash.logouto ~/.bash_logout. Verifica se è stata impostata una trap inserendo trap -p. Fai anche echo $PROMPT_COMMANDper vedere se qualcosa sta succedendo lì.


echo $ PROMPT_COMMAND restituisce echo -ne "\ 033] 0; $ {USER} @ $ {HOSTNAME}: $ {PWD / $ HOME / ~} \ 007". trap -p non restituisce nulla. Non ho /etc/bash.logout e ~ / .bash_logout non contiene nulla sulla cronologia dei registri.
Ludwig Weinzierl,

1

bashcerca di aggiungere la storia il più possibile. Con histappendon, garantirai sempre l'aggiunta della cronologia. Se è spento, la cronologia verrà comunque aggiunta solo fino al numero di comandi che hai Enterin una bashsessione interattiva > HISTSIZE. Quando ciò accade, la storia verrà sovrascritta.

Se si desidera sovrascrivere esplicitamente la cronologia, è possibile utilizzare history -win .bash_logouto una trap di uscita.

Ho pubblicato in modo più dettagliato in questa risposta il funzionamento di bashappend della cronologia.


-1

Ho scritto un breve suggerimento sull'impostazione di histappend aggiungi sul mio sito, ma spero di parafrasare il post qui, per rispondere alla tua domanda, spero.

Dovresti essere in grado di configurare histappend per essere 'on' usando shopt.

Per abilitare l'esecuzione

shopt -s histappend

Per disabilitare la corsa

shopt -u histappend

Questo aiuta?

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.