.bashrcを編集すると、プロンプトにGhostが表示されます。

.bashrcを編集すると、プロンプトにGhostが表示されます。

私のエントリに以下を追加しました~/.bashrc

export PS1="\e[0;35m[\u@\h \W]\$ \e[m "
echo -e "\e[0;35mYOU ARE ON THE LIVE SERVER !!\e[0m"

残念ながら、今ではbashに長い内容を貼り付けるたびに画面が縮み、幽霊の文字が画面に表示さtabれ、行が互いに捕まっていますが、理由を知っている人はいますか?

答え1

過去には、ANSIカラーコードがコマンドラインナビゲーションと混同される問題がありました。\[ \]コマンドシェルが入力文字列の一部としてこれを考慮する方法(または考慮しない方法)を知るために、ANSIコードを配置する必要があります。

良い:

export PS1="\[\e[0;35m\][\u@\h \W]\$\[\e[m\] "
echo -e "\[\e[0;35m\]YOU ARE ON THE LIVE SERVER !!\[\e[0m\]"

シェルが必要な理由の\[説明\]:端末の文字行列の正しい位置にプロンプ​​トを描画するには、シェルはプロンプト文字列の正しい長さ、つまりプロンプト文字列の長さを知る必要があります。印刷可能つまり、制御文字や文字シーケンスではありません。

しかし、シェルは、端末が印刷可能であると見なす文字列を知らない。したがって、印刷可能なシーケンスと印刷できないシーケンスを区別するために、シェルにヒントを提供する必要があります。これがおよび\[の目的です\]

答え2

この問題を解決しました。このウェブサイトを使用しました。http://bashrcgenerator.com/手動で行うには時間がかかりますが、要素をダブルクリックすると色を指定できます。

私は最終的に得る

   export PS1="\[\033[38;5;129m\][\u@\h\[$(tput sgr0)\]\[\033[38;5;15m\] \[$(tput sgr0)\]\[\033[38;5;129m\]~]\\$\[$(tput sgr0)\]\[\033[38;5;15m\] \[$(tput sgr0)\]"

関連情報