bashプロンプトを次のように変更しました。
PS1="\[\033[1;31m[\[\033[1;33m\$(date +%H:%M)\[\033[1;31m] \u:\[\033[1;32m\W\[\033[1;37m\$\[\033[0m\] "
主に色のため、キューが長くて申し訳ありません。デフォルトでは、Bashの履歴に戻るために上矢印を押すとプロンプトが消え、すべてが混乱します。似ているこの問題しかし、aが欠けているのか、どこにあるのかはわかりません\[
。
答え1
少し整理して携帯性をさらに高めてみましょう。通常、生成されたtput
制御シーケンスをハードコーディングするよりも使用する方が良いです。バッシュFAQ 53。これにより、行方不明者を見つけるのが簡単になります\]
。
red=$(tput setaf 1)
green=$(tput setaf 2)
yellow=$(tput setaf 3)
white=$(tput setaf 7)
reset=$(tput sgr0)
PS1="\[$red\][\[$yellow\]\A\[$red\]] \u:\[$green\]\W\[$white\]\$\[$reset\] "
date
電話を同じ内容(24時間形式)を表示する組み込みのプロンプトエスケープ機能に置き換えました。\A
HH:MM
接続されたBash FAQに記載されているように、このアプローチには注意が必要です。制御tput
シーケンス出力にエスケープを要求する内容が含まれている場合、出力は歪みます。私はこのような問題を経験したことがないので、通常は無視します。
答え2
\[
あなたとの不均衡\]
。 bashが端末で実際にスペースを占有していないことがわかるように、制御シーケンスを含める必要があります。
この試み:
PS1="\[\033[1;31m\][\[\033[1;33m\]\$(date +%H:%M)\[\033[1;31m\]] \u:\[\033[1;32m\]\W\[\033[1;37m\]\$\[\033[0m\] "
@jw013のソリューションしかし、もっときれいでより良いです。
答え3
これASCIIテーブル色、太字、イタリック体などへの参照があります。