Bash カラープロンプトと長いコマンド

Bash カラープロンプトと長いコマンド

ANSI エスケープ シーケンスを使用して、bash プロンプトの一部を色付けしています。これは、現在入力しているコマンドが長すぎて折り返さなければならないまではうまく機能します。コマンドの残りが次の行に表示される代わりに、現在の行の列 1 に戻り、プロンプトの先頭が上書きされます。

このプロンプトでその動作が発生します:

export PS1="[\u][\033[0;32;40mdemo \033[0;33;40m1.5.40.b\033[0;37;40m] \w> \033[0m"

ただし、同じプロンプトで正しく動作し、ANSI シーケンスが削除されます。

export PS1="[\u][demo 1.5.40.b] \w> "

現在のバージョンの Putty を使用して、デフォルトの Putty 設定で接続しています。OS は Ubuntu 8.10 です。

答え1

そこには何かがあるに違いない。なぜなら、次の文字列はbash ドキュメント同じ動作は示されません。

PS1="\[\033[1;34m\][\$(date +%H%M)][\u@\h:\w]$\[\033[0m\] "

それが何なのかまだ分かりませんが、彼らの作品はあってもあなたの作品は…

編集:試す:

PS1="[\u][\[\033[1;32m\]\[\033[1;40m\]demo \[\033[1;33m\]\[\033[1;40m\]1.5.40.b\[\033[0;37m\]] \w> \[\033[0m\] "

関連情報