Inizia ad isolare la fonte del problema rimuovendo eventuali personalizzazioni della cronologia di Bash. Ad esempio, qualsiasi codice che imposta le variabili di shell che iniziano con HIST
o utilizza set -o
per impostare le opzioni di history
o histexpand
.
Il codice della cronologia dei comandi per sessione in /etc/bashrc_Apple_Terminal
tenta di mantenere la compatibilità con le variabili di cronologia di Bash e tenta di rilevare quando l'utente sta probabilmente facendo qualcosa che non può essere compatibile e disabilita il meccanismo in quel caso (perché l'utente sta facendo qualcosa di arbitrario, come caricare, salvare o modificare la cronologia). Tuttavia, se hai script che eseguono il comando history
, quel codice non ha modo di sapere in anticipo; dovrai aggiornare il tuo codice per mantenere la compatibilità con la nuova cronologia dei comandi per sessione, oppure disabilitare la cronologia delle sessioni impostando SHELL_SESSION_HISTORY=0
come descritto nella documentazione in /etc/bashrc_Apple_Terminal
.
Se non stai personalizzando HISTFILE
, HISTTIMEFORMAT
o l'opzione histappend
shell, un'altra cosa da verificare è se gli script di avvio della shell modificano o la variabile PROMPT_COMMAND
o la trappola EXIT
senza concatenando il valore precedente per evitare di cancellarlo.
Vedi i commenti in /etc/bashrc_Apple_Terminal
per una descrizione di come funziona il meccanismo e come personalizzarlo o disabilitarlo.