Bash

瀏覽歷史記錄時 Bash 提示出現亂碼?

  • January 12, 2019

我有 MacOS 和.bash_profile內容:

export PS1="\[\e[0;31m$\]\[\e[m\] \[\e[0;32m\w\e[m\] : \]"

結果,我在終端中列印了 pwd,如下所示:

螢幕截圖

但是當我按向上和向下箭頭使用終端歷史記錄時,我遇到了錯誤:

在此處輸入圖像描述

  1. 無需導出 PS1:它是 shell 的變數,其他程序不會使用它。
  2. 看起來你沒有正確的轉義括號。它們用於圍繞非列印序列,因此 bash 可以準確地計算出提示的寬度。試試這個:
PS1="\[\e[0;31m\]\$ \[\e[0;32m\]\w\[\e[0m\] : "
#     1.........1    2.........2   3......3 

所以列印位(\$, \w,冒號和空格)在括號之外。

進一步參考:https ://www.gnu.org/software/bash/manual/bashref.html#Controlling-the-Prompt

引用自:https://unix.stackexchange.com/questions/494147