Parece que é codificado na linha 5576 no shell.c (versão 3.14.1):
sqlite3_snprintf(nHistory, zHistory,"%s/.sqlite_history", zHome);
Então, para mudar isso, sua única opção é editar a fonte e recompilar.
sqlite3 armazena o histórico de comandos em .sqlite_history , que é criado por padrão em:
$HOME/.sqlite_history
Como posso alterar este local para outro lugar?
Isso é possível, por exemplo, com mysql , onde eu posso definir a variável de ambiente
MYSQL_HISTFILE=/path/to/whatever/file
Mas não encontrei nenhuma variável de ambiente correspondente para sqlite3
export SQLITE_HISTFILE=/tmp/history
não tem efeito. Eu encontrei um post onde alguém pergunta pergunta, mas nenhuma resposta útil é dada.
Para listar algumas das alternativas possíveis,
crie ~/.sqlite_history em um link simbólico para outro arquivo.
simplesmente execute HOME=/tmp sqlite3 para que o programa salve o histórico em /tmp/.sqlite_history , embora isso pressuponha que você não precisa do diretório pessoal real dentro do ambiente de comando.
edite o binário e substitua a string "%s/.sqlite_history" , encontrada por Hoov, por outra string com o mesmo número de bytes, por exemplo, "/tmp/sqlitehistory" :
sed < /usr/bin/sqlite3 's|%s/.sqlite_history|/tmp/sqlitehistory|' >/tmp/sqlite3
cmp -l /usr/bin/sqlite3 /tmp/sqlite3 # check no extraneous differences
chmod +x /tmp/sqlite3
/tmp/sqlite3
use o LD_PRELOAD correção que propus em outra pergunta para alterar um nome de arquivo ( "/tmp/adb.log" nesse caso) para outro durante uma chamada open() .
A partir de 10 de outubro de 2018 parece que uma nova variável , $SQLITE_HISTORY , foi adicionada ao endereço isso.