
私はgnome-terminal
bash で を使用していますが、行をまたぐコマンドがある場合、同じ行に留まってしまいます。そのため、次の代わりに:
echo "abcdefghijklmnopqrstuvwxyz"
私は
opqrstuvwxyz""abcdefghijklmn
またはそれに似たようなものです。ただし、Enter キーを押すとコマンドは機能します。PS1 変数と関係があると思いますが、何が問題なのかわかりません。これがそれです:
export PS1='\e[1;35m[\u:\w]\$\e[0;35m '
答え1
これは多少関連があるようです:
tput
Bash のマニュアル ページでは、出力を で囲むこと\[ \]
が推奨されています。これにより、Bash は印刷できない文字を無視し、プロンプトのサイズを正しく計算できるようになります。
ソース。
tput
あなたの場合の「出力」は次のようになります: \e[1;35m
、\e[0;35m
(ラップする 2 つの別々のフラグメントがあります)。 および と記述することもできます\033[1;35m
。\033[0;35m
一般に、印刷できないシーケンスはラップする必要があります。
以下を変更しましたPS1
:
export PS1='\[\e[1;35m\][\u:\w]\$\[\e[0;35m\] '
私の場合は問題なく動作しているようです。