端末プロンプトが[重複]の上に記録されました。

端末プロンプトが[重複]の上に記録されました。

まず、このターミナルセッションは、Windows PuTTYからLinux OpenSSHへのsshを介して行われます。これが重要なのかよくわかりませんが、とにかく言わなければならないと思いました。

現在の端末に複数の行を書き込むと、テキストは新しい行ではなく同じ行から始まり、プロンプトが次のように表示されます。

trevor@SEARS-SERVER:~$

これについては次のとおりです(もちろんサンプルテキスト)。

ne lineSEARS-SERVER:~$ this is the text line that is too long to fit on o

現在、私のPS1は.bashrcに次のように設定されています。

export PS1="\n[$(date +%r)] \e]0;\e[0;32m\u\e[m@\e[38;5;52m\h\e[m:\e[38;5;240m\w\e[m\e[97m$\e[m"

また、ウィンドウが特定の幅より小さい場合は、次のことが発生します。

m$ :32:40 PM] trevor@SEARS-SERVER:~

これが私のPS1構成またはPuTTYと関連があることを知っていますが、どちらが、なぜ/方法かはわかりません。助けが必要ですか?

ベストアンサー1

質問はあなたのプロンプトです。

export PS1="\n[$(date +%r)] \e]0;\e[0;32m\u\e[m@\e[38;5;52m\h\e[m:\e[38;5;240m\w\e[m\e[97m$\e[m"

Bashにエスケープシーケンス(非印刷)を無視させるには、その\[シーケンスをとで囲む必要があります\]

それ以外の場合、bashはこれを画面プロンプトの長さの一部として計算し、端末が自動的に次の行に進む時点を混同します。

次のことが役に立ちます。

export PS1="\n[$(date +%r)] \[\e]0;\e[0;32m\]\u\[\e[m\]@\[\e[38;5;52m\]\h\[\e[m\]:\[\e[38;5;240m\]\w\[\e[m\e[97m\]$\[\e[m\]"

おすすめ記事