在着色終端的提示時,我發現了一個惱人的錯誤。如果我把我提示一個彩色的,如在終端中設置顏色會導致奇怪的字符行限制
export PS1='\e[1;34m[\e[0;31m\D{%Hh%M} \e[0;32m\u\e[[email protected]\e[0;35m\h\e[0m:\e[0;36m\w\e[1;34m]\e[0m $ '
然後它開始時,我得到的輸入行一些大小打破:
換句話說,當我行達到一定的限度,它開始自己!一旦我再次填充同一行,那麼它運行良好,到下一行。
有沒有人看過這個問題呢?你有解決方案嗎?這個問題也發生在iTerm中。
你的語法很殘酷。匆匆一瞥,你沒有硬支架來關閉它(在$之前)。還有其他問題。我建議重新開始。這裏有一個着色指南:http://www.ibm.com/developerworks/cn/linux/l-tip-prompt/ – 2011-09-25 03:25:52
備註:定製提示時,使用'\ $'而不是字面美元符號。 Bash將顯示相應的提示符(普通用戶使用'$',root使用'#')。 –
另一種風格提示:不要硬編碼轉義序列(我意識到大多數人都這樣做,但他們不應該)。相反,使用'tput'爲當前終端發出適當的代碼,以便它適用於各種終端。特別是,如果終端不支持提示中的顏色/樣式,它將不輸出任何內容,而不會輸出可能會影響終端的字符。例如'PS1 ='\ [$(tput setaf 1)\] \ h:\ W \ [$(tput sgr0)\] \ u \ $「'將顯示紅色的主機名和工作目錄。 –