画面上部に常に色付きのバーを表示するように bash プロファイル スクリプトを変更する方法はありますか。画面に常に色付きのホスト名、ユーザー名、および IP アドレスを表示する必要がありますが、プロンプトがデフォルトのコンソール幅の半分以上を占めるようになるため、PS1 を過負荷にしたくありません。
1579 次
4 に答える
4
完全ではありませんが、これは画面の最初の行にあるプロンプトの一部を修正する方法を示しています。
PS1='\w \[\e[s\e[1;1H\e[42m\]\h \u ipaddress\[\e[0m\e[u\]\$ '
内訳:
\e[s
- 現在のカーソル位置を保存\e[1;1H
- カーソルを行 1、列 1 (左上隅から番号付け) に移動します。\e[u
- カーソルを以前に保存した位置に戻します\e42m
- 背景を緑にする\e0m
- デフォルトの前景色/背景色を復元します\[...\]
bash
-プロンプトの長さを正しく計算できるように、さまざまな非印刷文字を囲みます。
ウィキペディアには、他のエスケープ コードがリストされています。この回答に欠けている 2 つの点は、バーを文字列全体に拡張する方法と、正しい IP アドレスを設定する方法です。
更新: これは ruckc が行った変更をカバーしていると思います:
PS1='\[\e[s\e[1;1H\e[42m\e[K\h \u ipaddress\e[0m\e[u\]\w \$ '
于 2013-09-12T20:22:51.887 に答える
0
または、xterm を使用している場合は、代わりに xterm のタイトルを設定できます。
export PS1="\[\033]0;\u $(host $(hostname))\007\]\u@\h:\w\$ "
これにより、xterm のタイトルが設定され、プロンプトが username@host:pwd を含むように設定されます。
私の .bashrc には次のようなものが含まれているため、xterm にいるかどうかに応じて PS1 が正しく設定されます。
if [[ -n "$TERM" ]] ; then
if ( echo $TERM | $GREP -q xterm ) ; then
export PS1="\[\033]0;\u@\h:\w\007\]\u@\h:\w\$ "
else
export PS1="\u@\h:\w\$ "
fi
fi
于 2013-09-12T21:25:05.893 に答える