我使用以下命令自定義我的 bash 提示:
PS1='\e[0;36m\u.\h
\e[0;31m $ux \e[0;92m \e[0;36m \@* \e[0;31m\w\n\e[0;92m\$ '
輸出作業正常,看起來不錯
但是當我使用箭頭鍵在歷史記錄中滾動時
滾動 5-10 次后,我無法移動到行首來修改
我找到的代碼/命令和
我看到了最后一個命令的一部分
我執行的命令:
$ ps 輔助 | SSH 登錄
滾動后我看到
作為提示行中的示例
$ ps aux 并且我只能在aux之后開始寫入
所以我按 ctrl c 換行/取消命令
我忘記了$后面的字符嗎?
這是我的提示:
z4o.ubuntu
12:46 * /
$
當我復制/粘貼長命令時,我遇到了同樣的問題
uj5u.com熱心網友回復:
您必須將不可見的序列放入\[ \](或在\x01\x02` 位元組中)。請參閱 Bash 手冊。
PS1='\[\e[0;36m\]printable stuff\[\e[sequence\]'
Bash 不知道顯示的字符占用了多少列。\e[0;36m列印 7 個字符,但不移動游標。您必須將其傳達給 Bash。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/383846.html
下一篇:Bash-僅當輸出為終端時
