Quando imposto un PROMPT_COMMAND di esportazione, cambia le impostazioni del mio terminale?

1

Quindi, volevo aggiungere un timestamp al mio terminale e ho seguito questa risposta askUbuntu per farlo. E funziona bene. Nelle preferenze del mio terminale ho impostato la nuova scheda per aprire la directory di lavoro attuale. Dopo aver aggiunto l'esportazione PROMPT_COMMAND in .bash_profile, tuttavia la mia nuova scheda apre la directory predefinita. Quando commento quella riga, funziona di nuovo normalmente.

Perché succede? Come posso ottenere la data / ora sulla mia richiesta del terminale senza rovinare le mie nuove impostazioni della scheda

    
posta Prada 04.06.2018 - 20:57
fonte

1 risposta

1

Il problema è che PROMPT_COMMAND è utilizzato dal sistema bash per abilitare la cronologia per sessione. Se guardi /etc/bashrc_Apple_Terminal vedi

# Note that this uses PROMPT_COMMAND to enable per-session history
# the first time for each new session. If you customize PROMPT_COMMAND
# be sure to include the previous value. e.g.,
#
#   PROMPT_COMMAND="${PROMPT_COMMAND:+$PROMPT_COMMAND; }your_code_here"

Quindi se vuoi seguire i consigli del consiglio che hai collegato a te è meglio usare solo

export PS1="\t [\u@\h \W]\$ \[$(tput sgr0)\]"

o simili. Se vuoi davvero utilizzare PROMPT_COMMAND

PROMPT_COMMAND="${PROMPT_COMMAND:+$PROMPT_COMMAND; }echo -n \[\$(date +%H:%M:%S)\]\ "

ma il prompt verrà incasinato se navighi indietro nel tempo con Ctrl-P .

    
risposta data 17.12.2018 - 20:43
fonte

Leggi altre domande sui tag