Bem, quando histappend
não está definido, isso não significa que o histórico seja apagado em cada saída do shell. Sem histappend
bash lê o histfile na inicialização na memória - durante a operação, novas entradas são adicionadas - e no shell, as últimas linhas HISTSIZE são gravadas no arquivo de histórico sem anexar, ou seja, substituir o conteúdo anterior.
Por exemplo, se o histfile contiver 400 entradas, durante o bash runtime 10 novas entradas serão adicionadas - o histsize é definido como 500, então o novo histfile conterá 410 entradas.
Esse comportamento é problemático apenas se você usar mais instâncias do bash em paralelo. Nesse caso, o arquivo de histórico contém apenas o conteúdo do último shell existente.
Independente disso: algumas pessoas querem limpar seu histórico na saída da shell por motivos de privacidade.