MacとUbuntuの端末PS1値の奇妙な動作

MacとUbuntuの端末PS1値の奇妙な動作

MacとUbuntuでは、PS1の値を次のように設定しました。

export PS1='\[\e[1;31m\]\d\[\e[0m\] \[\e[1;32m\]\u  \W\[\e[0m\] \[\e[1;36m\]>\[\e[0,\] \[$(tput sgr0)\]'

Ubuntuでは、端末のプロンプトは大丈夫です。しかし、私のMacには、次のような追加の「B」があります。

Mon Jan 16 DrizzutoJr  ~ >B

私はMacとUbuntuがこの値を少し異なって扱うと仮定します。誰かが何が起こっているのか、どうやって解決するのかを説明できますか?

答え1

\[\e[0,\]添付されたテキストがescape,有効な「ANSI」エスケープシーケンスに対応していないため、これは疑わしいです。最後のバイト)。 VTEと「動作」することもできますが(フードの下に面白いカット/貼り付けがたくさんあります)、他の端末では迷子になった文字が表示されることがあります。

たぶんキーボードの隣接するキーが欲しいかもしれません。m

ちなみに、次$(tput sgr0)のような結果を得ることもできます。\e[0mtput表現全体を通して一貫して使用することも効果があり、これはより冗長ですが、おそらくより読みやすくなります)。

追加資料:

関連情報