Bashプロンプトでこれらの偽の文字を防ぐにはどうすればよいですか?

Bashプロンプトでこれらの偽の文字を防ぐにはどうすればよいですか?

私はFedora 20を使用しており、bashプロンプトを調整してより便利にしたいと思います。現在、私のPS1プロンプトは〜/ .bash_profileファイルの次の行に設定されています。

 LP=" Last prompt at: "
 PS1="\[\033[s\033[0;0H\033[0;47m\033[K\033[1;34m[\$LP\]t\033[0m\033[u[<\u@\h \W>]\$ "
 echo

これにより、画面の上部に灰色のバー(このコピーには表示されません)と最後のプロンプト時間を含む素晴らしい線が表示されます。

[ Last prompt at: ]09:22:46
[<Harry@localhost ~>]$ 

そうでない場合、echo端末画面が開かれると、プロンプトは一番上の行のメッセージをマスクします。 echoがすることは、引数をエコーし​​て新しい端末が開いたときに.bashrcが実行されたときに引数なしで新しい行に素敵に移動し、一番上の行はそのままにすることです。後続のプロンプトでは.bashrcが実行されないため、新しい行はエコーされません。

私の問題は、文字列の周りのプロンプトにある「[]」角かっこに関連していますLast prompt at:。表示されたメッセージにこれらの括弧が表示されないようにするにはどうすればよいですか?


@guidoの答えに従って解決されました。角かっこを削除しようとしましたが、文字列が完全に失われました。ここでLPの後にスペースを追加したことがわかりました。これは私が望むものを提供しますが、スペースが必要な理由を理解できません。答えにコメントを追加してもよろしいですか?

答え1

PS1から角括弧を削除します(周囲に誤字があります\t):

LP=" Last prompt at: "
PS1="\[\033[s\033[0;0H\033[0;47m\033[K\033[1;34m\$LP \t\033[0m\033[u\][<\u@\h \W>]\$ "
echo

答え2

帰道はすでにあなたの特定の質問に答えました。しかし、注意してください:

また、スクロールしても行が削除されないように、スクロール領域を 2 番目の行から開始するように設定できます。

PS1="\[\e[s\e[2;0r\e[H\e[0;47m\e[K\e[1;34m$LP\t\e[0m\e[u\]<\u@\h \W>\$ "

screen(個人的には、hardstatus機能などを使用してシェルレベルでこの種の操作を実行するわけではありませんが)

関連情報