
私は 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 は対話型シェルにのみ関連するため、子プロセスにエクスポートする必要はありません。