Bash

在我編輯了我的 .bashrc 之後,我的提示中出現了鬼魂

  • May 2, 2017

我將以下內容添加到我的~/.bashrc

export PS1="\e[0;35m[\u@\h \W]\$ \e[m "
echo -e "\e[0;35mYOU ARE ON THE LIVE SERVER !!\e[0m"

可悲的是,現在,每次我將一些長長的東西粘貼到 bash 中時,它都會變得鬆軟,tab螢幕上出現鬼字元,並且線條相互吞噬,有人知道為什麼嗎?

過去我也遇到過 ANSI 顏色程式碼與命令行導航混淆的問題;您需要放置 ANSI 程式碼\[ \],以便命令 shell 知道如何(不)將它們作為輸入字元串的一部分考慮在內。

如:

export PS1="\[\e[0;35m\][\u@\h \W]\$\[\e[m\] "
echo -e "\[\e[0;35m\]YOU ARE ON THE LIVE SERVER !!\[\e[0m\]"

\[關於shell為什麼需要和的一些解釋\]:為了在終端字元矩陣中的正確位置繪製提示,shell需要知道提示字元串的正確長度,即可列印字元的數量,即不是控製字元或字元序列。

但是,shell 不知道終端認為哪些字元序列可列印。因此,需要向 shell 提供提示以區分可列印和不可列印序列,這就是\[and的目的\]

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