o histórico do bash é anexado, mas o histappend está desativado

8

Estou no ubuntu 10.4 e meu shell está bash. Quando abro vários terminais gnomos e os fecho, o histórico é anexado corretamente. Quando entro shopt, diz entre outras coisas:

histappend      off

Alguém pode me dizer onde o comportamento do acréscimo está configurado?

Ludwig Weinzierl
fonte
11
remarcando 'ubuntu-10.04-lts' desde que o ubuntu-10.10 ainda não saiu. tho ouvi dizer que deve ser nomeado algo Meerkat.
Quack quixote
11
btw, minhas conchas do bash no Lucid mostram todos os histasppendos como em ... nenhum ajuste ainda ... você já ajustou sua configuração do bash ?
Quack quixote
@quack: Obrigado, eu estou à frente do meu tempo, como sempre ;-)
Ludwig Weinzierl
@ Quack: Eu atualizei esta instalação várias vezes, então não tenho 100% de certeza. Para mim, não importa se o histappend está ativado ou desativado, a história é sempre anexada. O que estou realmente curioso é por que isso acontece? Seria interessante, se você pudesse comprar -u histappend e me dizer se ele ainda está anexado à sua instalação?
Ludwig Weinzierl

Respostas:

1

histappendé a configuração que eu esperaria controlar isso. Como esses não são shells de login, não será algo acontecendo no /etc/bash.bash.logoutor ~/.bash_logout. Verifique se uma armadilha está configurada inserindo trap -p. Também faça echo $PROMPT_COMMANDpara ver se algo está acontecendo lá.

Pausado até novo aviso.
fonte
echo $ PROMPT_COMMAND retorna echo -ne "\ 033] 0; $ {USER} @ $ {HOSTNAME}: $ {PWD / $ HOME / ~} \ 007". trap -p não retorna nada. Eu não tenho /etc/bash.logout e ~ / .bash_logout não contém nada referente ao histórico.
Ludwig Weinzierl
1

bashtenta acrescentar o máximo de histórico possível. Com histappendativado, você garantirá sempre anexar o histórico. Se estiver desativado, o histórico ainda será anexado apenas até o número de comandos Enterem uma bashsessão interativa > HISTSIZE. Quando isso acontece, o histórico será substituído.

Se você quiser história explicitamente de substituição, você pode usar history -wem .bash_logoutou uma saída armadilha.

Postei com mais detalhes nesta resposta sobre como o bashanexo histórico funciona.

dosentmatter
fonte
-1

Eu escrevi uma dica rápida sobre como definir isso errado no meu site, mas vou parafrasear o post aqui, para responder sua pergunta, espero.

Você deve poder configurar o histappend como 'on' usando shopt.

Para habilitar a execução

shopt -s histappend

Para desativar a execução

shopt -u histappend

Isso ajuda?

Pega
fonte