私のエントリに以下を追加しました~/.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)\]"