Eu quero fazer um script bash que limpe o histórico, ou seja, funciona de maneira semelhante ao comando
history -c
Então comecei com o seguinte código: -
#!/bin/bash
history #displaying history
history -c #clearing history
Nenhum deles funcionou. Em algumas pesquisas, vim a saber que o bash desativa o histórico em shells não interativos por padrão, mas podemos ativá-lo. Então, depois de editar, tentei o seguinte código: -
#!/bin/bash
HISTFILE=~/.bash_history # Or wherever you bash history file lives
set -o history # enable history
history
history -c
Mostra a saída: -
[root@localhost lib]# bash a.sh
1 history
[root@localhost lib]#
E além disso, o comando hisory -c não funcionou. Porque ainda estou recebendo o histórico de comandos quando digito histórico. Isso significa que o histórico e o histórico -c não funcionaram no script bash.
Como devemos usá-lo então?
EDIT 1 - Eu quero excluir o histórico da sessão atual, ele deve ser armazenado em algum lugar. Eu tentei usar comandos como o seguinte, mas sem efeito: -
cat /dev/null > ~/.bash_history && history -c && exit
cat /dev/null > ~/.bash_history
P.S. - Esta não é uma questão duplicada. Por favor, tente entender a diferença antes de marcá-la como duplicada. Eu quero limpar o histórico da sessão atual através de um script. Eu não me importo se está escrito de volta ou o que seja. A outra questão está prestes a excluir permanentemente o histórico. Não tem nada a ver com o script ou através de outro terminal.