web-dev-qa-db-ja.com

lxterminal不要な文字を表示する

Lubuntu14.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
gwaramadze

カラーコードは\[\]で囲む必要があります

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

また、PS1はインタラクティブシェルにのみ関連するため、子プロセスにエクスポートする必要はありません。

2
glenn jackman