![端末プロンプトが[重複]の上に記録されました。](https://linux33.com/image/90488/%E7%AB%AF%E6%9C%AB%E3%83%97%E3%83%AD%E3%83%B3%E3%83%97%E3%83%88%E3%81%8C%5B%E9%87%8D%E8%A4%87%5D%E3%81%AE%E4%B8%8A%E3%81%AB%E8%A8%98%E9%8C%B2%E3%81%95%E3%82%8C%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82.png)
まず、このターミナルセッションは、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\]"