GNU/Linux >> Linux の 問題 >  >> Linux

.bashrcを編集した後、プロンプトでGhostsを取得しましたか?

この質問にはすでに回答があります :履歴を閲覧するときにbashプロンプトがバグになるのはなぜですか? [重複]

(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。文字や文字シーケンスを制御しません。

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


Linux
  1. `cd`外部コマンドのポイント?

  2. .bashrcの目的とそれはどのように機能しますか?

  3. `$ _`の意味を理解しますか?

  1. シェルを終了せずに履歴をアーカイブしますか?

  2. 現在のシェルから.bashrcを再生成しますか?

  3. $の意味は?シェルスクリプトでは?

  1. 実世界の SELinux

  2. PS1 シェル変数の正しい場所は?

  3. .bashrc で環境変数を設定する最良の方法は何ですか?