Centos
伺服器 Bash 換行在文本和錯誤的地方
這是一個很難解釋的問題,當使用 bash shell 連接到我的一台伺服器時,在任何使用者下,換行都會被破壞並且存在各種問題。其中一次我在下面的螢幕截圖中詳細說明:
我遇到的其他問題包括 nano 對我所在的行和/或字母感到非常困惑,如在 nano 中輸入相同的消息所示:
這些問題只發生在我之前提到的連接到我的一台執行 CentO 的伺服器時。你知道為什麼會發生這種情況以及我能做些什麼來解決它嗎?在其他伺服器上,消息工作正常!
謝謝你的時間,
請求命令的輸出:
無法正常工作的伺服器:
工作伺服器:
可能是非工作伺服器上的自定義提示?在 .bashrc
PS1='\e[1;32m\u@\h\e[m:\e[1;34m\w\e[m$ '
對此發表評論似乎可以解決問題。
Google表示,如果您不遵守這些規則,可能會出現換行錯誤
use the \[ escape to begin a sequence of non-printing characters, and the \] escape to signal the end of such a sequence
我不確定這適合我的提示嗎?
自定義提示是問題(來自您的評論)。
PS1='\e[1;32m\u@\h\e[m:\e[1;34m\w\e[m$ '
它要麼發送您的終端不理解的控制序列,要麼格式不正確。
你可以試試這個
PS1='\[\e[1;32m\]\u@\h\[\e[m\]:\[\e[1;34m\]\w\[\e[m\]$ '
這幾乎可以肯定是您的終端仿真器和正在執行的系統之間關於終端功能的意見分歧。如果,如您所說,它只發生在某些機器上(或僅通過 SSH),比較
TERM
工作系統和非工作系統之間的環境變數的值,並嘗試在TERM
不工作的系統上進行適當的設置。這可能不起作用,具體取決於
terminfo
數據庫在不工作的系統上的使用年限;您可能需要升級該系統,或者至少找到另一個TERM
適合您並且遠端系統知道的值。