を押すk
か押すと、up
以前に入力したコマンドが表示されますが、ある時点で10文字より長いコマンドの最初の10文字が保持されます。 10文字を超えるコマンドが常に最初に表示されるわけではありませんが、もう一度押すとctrl+c
同じup
文字がそのまま残ります。
$ echo test
test
$ echo thisisalongstring
thisisalongstring
# pressing `up` twice
$ echo thisiecho test # should be `echo test`
test
# even though `echo thisi` is shown, it is not executed
この問題を解決する方法はありますか?
~/.bashrc
追加のテストを除いて、何も変更しませんでしたPS1='test '
。
# this is the default ubuntu prompt
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
- これは gnome-terminal と konsole の両方で発生します。
- 印刷できない文字を含まない追加しようとしましたが、この問題は引き続き発生し
PS1='test '
ます。PS1=''
~/.bashrc
- 実行または
PS1=$PS1
動作PS1=$(echo $PS1)
しません。 - 上記のコードを端末に手動で貼り付けると問題は解決しましたが、理由はわかりません。
$PS1
ターミナルを起動してエコー$PS1
すると、手動で貼り付けてからエコーするのと同じ結果が得られます。- 実行すると、
. ~/.bashrc
プロンプトが盗聴状態に戻ります。
この質問はすでに解決されている質問と似ています。履歴検索でbashプロンプトに問題が発生するのはなぜですか?ただし、印刷できない文字がない場合でも、これが発生する可能性がありますPS1
。
答え1
これは変更なしで機能しますPS1
。
custom_prompt(){
# default ubuntu prompt
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
}
PROMPT_COMMAND=custom_prompt