Ketika saya mengatur PROMPT_COMMAND ekspor, itu mengubah pengaturan terminal saya?

1

Jadi, saya ingin menambahkan cap waktu ke terminal prompt saya dan saya mengikuti ini askUbuntu menjawab untuk melakukannya. Dan itu bekerja dengan baik. Dalam preferensi terminal saya, saya telah mengatur tab baru untuk membuka direktori kerja saat ini. Setelah menambahkan PROMPT_COMMAND ekspor di .bash_profile, namun tab baru saya membuka direktori default. Ketika saya mengomentari baris itu, itu berfungsi normal lagi.

Mengapa ini terjadi? Bagaimana saya bisa mendapatkan cap waktu pada terminal prompt saya tanpa mengacaukan pengaturan tab baru saya

Prada
sumber
1
Secara default PROMPT_COMMAND panggilan update_terminal_cwd untuk melakukan banyak hal. Anda mungkin perlu mengikatnya.
nohillside

Jawaban:

1

Masalahnya adalah PROMPT_COMMAND digunakan oleh sistem bash untuk mengaktifkan riwayat per sesi. Jika Anda melihat /etc/bashrc_Apple_Terminal kamu melihat

# 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"

Jadi, jika Anda ingin mengikuti rekomendasi dalam saran yang telah Anda tautkan, lebih baik Anda gunakan saja

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

atau serupa. Jika Anda benar-benar ingin menggunakannya PROMPT_COMMAND

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

tetapi prompt akan kacau jika Anda menavigasi kembali pada waktunya dengan Ctrl-P .

nohillside
sumber