HISTCONTROL = ignoreboth não funciona [duplicado]

1

O padrão .bashrc na distribuição padrão do Ubuntu 16.04 que vem com o AWS tem estas linhas:

# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
HISTCONTROL=ignoreboth

No entanto, não parece funcionar. Eu tenho executado pm2 restart myApp e pm2 list repetidamente usando a tecla de seta para cima, e o buffer de comando agora contém quase cem linhas destes.

O que poderia estar errado?

    
por Old Geezer 11.08.2017 / 16:18

1 resposta

3

Está funcionando conforme o esperado. ignoredups , implícito por ignoreboth , não adiciona um comando ao histórico se for igual ao comando anterior imediato. Não parece mais distante na história. Do manual :

  

Um valor de " ignoredups " faz com que as linhas correspondam às anteriores   entrada de histórico para não ser salvo.

Então, isso adicionará foo duas vezes ao histórico:

$ foo
$ bar
$ foo

Mas será assim:

$ foo
$ bar
$ foo
$ foo

O último foo não será adicionado ao histórico, pois o comando anterior foi foo . Use erasedups em conjunto:

  

Um valor de " erasedups " faz com que todas as linhas anteriores correspondam ao   linha atual a ser removida da lista de histórico antes que a linha seja   salvo.

Então:

HISTCONTROL=ignoreboth:erasedups
    
por Olorin 11.08.2017 / 16:38