この質問にはすでに回答があります :履歴を閲覧するときにbashプロンプトがバグになるのはなぜですか? [重複]
(2つの回答)
4年前に閉鎖されました。
Linux
(2つの回答)
4年前に閉鎖されました。
~/.bashrc
に以下を追加しました :
export PS1="\e[0;35m[\[email protected]\h \W]\$ \e[m "
echo -e "\e[0;35mYOU ARE ON THE LIVE SERVER !!\e[0m"
悲しいことに、今、私が何かをbashに長く貼り付けるたびに、それはずんぐりしてゴーストになりますtab
画面全体に文字が表示され、線が互いに食い合うのですが、その理由を知っている人はいますか?
承認された回答:
また、過去には、ANSIカラーコードがコマンドラインナビゲーションで混乱するという問題がありました。 \[ \]
の周りにANSIコードを配置する必要があります コマンドシェルが入力文字列の一部としてそれらを考慮に入れる(しない)方法を知るために。
のように:
export PS1="\[\e[0;35m\][\[email protected]\h \W]\$\[\e[m\] "
echo -e "\[\e[0;35m\]YOU ARE ON THE LIVE SERVER !!\[\e[0m\]"
シェルに\[
が必要な理由に関する説明 および\]
:端末の文字マトリックスの正しい位置にプロンプトを描画するには、シェルはプロンプト文字列の正しい長さを知っている必要があります。これは、印刷可能の量です。 文字、私。 e。文字や文字シーケンスを制御しません。
ただし、シェルは、端末が印刷可能と見なす文字シーケンスを認識していません。したがって、\[
の目的である、印刷可能なシーケンスと印刷不可能なシーケンスを区別するために、シェルにヒントを提供する必要があります。 および\]
。