lxterminal プロンプトの不要な文字

lxterminal プロンプトの不要な文字

私は Lubuntu 14.04 を新規インストールしています。LXTerminal を使用しており、これは .bashrc ファイルを通じて設定しているプロンプトです:

export PS1="\e[0;36m$ \w \e[m"

最大 15 文字のコマンドを入力し (実行して履歴に登録します) (「コマンドが見つかりません」は無視してください) と仮定します。

$ ~ 012345678901234
012345678901234: command not found

ここで上矢印を押すと、コマンドが戻ります:

$ ~ 012345678901234

下矢印キーを押すと、プロンプトに戻ります。

$ ~ 

問題 実行する文字が 16 個以上ある場合に問題が発生します。

$ ~ 0123456789012345
0123456789012345: command not found

上矢印を押すと、前のコマンドが問題なく表示されます。

$ ~ 0123456789012345

下矢印を押してもプロンプトは表示されませんが、履歴にある最初の 16 文字を超えるコマンドの 10 文字が何らかの方法で記憶され、他のコマンドが実行されるまで表示されます。基本的に、これが当面のデフォルトのプロンプトになります。

$ ~ 0123456789

これで、Return キーを押して削除するか、他のコマンドを実行することができます。例として、次のようになります。

$ ~ 0123456789ls
Desktop  Documents  Downloads  Music  Pictures  Public  Templates  Videos

どうすれば修正できますか? 大した問題ではありませんが、かなり迷惑です。

答え1

カラーコードを囲む必要があり\[\]

PS1='\[\e[0;36m\]$ \w \[\e[m\]'

また、PS1 は対話型シェルにのみ関連するため、子プロセスにエクスポートする必要はありません。

関連情報