.screenrcファイルを編集/作成してからかなり時間が経過しましたが、現在使用中のファイルは次のとおりです。
# Turn off the screen startup message
startup_message off
# Define format of bottom navigation/status/date/etc. line
hardstatus alwayslastline "%{yk}[ %H ] %-Lw%50>%{gk}(%{-}%n-%t%{gk})%{-}%+Lw%< %=%{yk}[ %c %d.%m.%Y ]"
# Increase scrollback buffer to 30000 lines
defscrollback 30000
正直なところ、私のHardstatus行のすべてが何を表すのか覚えていませんが、ログインしているユーザーに基づいてホスト名の色を変更する方法を理解しようとしています。可能ですか?これで、任意のユーザーとしてログインするときにホスト名は黄色ですが、rootの場合は赤が必要です。 .bashrcファイルで変更できる内容ですか? .bashrcの新しい画面ウィンドウ名を接続されたサーバーのホスト名に変更しました。
# Set screen window title
case "$TERM" in
screen)
PROMPT_COMMAND='echo -ne "\033k$HOSTNAME\033\\"'
;;
esac
助けてくれてありがとう!
編集する
これを.bashrcファイルに追加しようとしましたが、画面のハード状態でホスト名の前にANSIコードが追加されました。
case "$TERM" in
screen)
if (( $UID == 0 )); then
PROMPT_COMMAND='echo -ne "\033k$FRED$HOSTNAME$RS\033\\"'
else
PROMPT_COMMAND='echo -ne "\033k$HOSTNAME\033\\"'
fi
;;
esac
編集2
\[\033[31m\]
また、上記のステートメントに実際のANSIカラーコード(例:)と画面エスケープコード(例:)を追加しましたが、どちらも機能しませんでした。%kr
.bashrc
編集3
これをコマンドラインプロンプトとして使用すると、PS1の前にホスト名が赤く表示されます。
PROMPT_COMMAND='echo -ne "\033[31m$HOSTNAME\033\\"'
次のプロンプトを使用すると、ウィンドウ名はホスト名に変更されますが(はい!)、色はデフォルト値のままです(いいえ!)。
PROMPT_COMMAND='echo -ne "\033[31m\033k$HOSTNAME\033\\"'
\033[31m
また、を画面の色のエスケープ(%kr)に置き換えようとしましたが、やはり[31m
機能しませんでした。
ベストアンサー1
U&L Q&Aをチェックしてください。
特にこの答えはhttps://unix.stackexchange.com/a/16433/7453。
一般的なアイデアは、2つの異なるscreenrc
カラーファイルを維持し、ファイル$USER
の色に基づいてbashrc
環境変数がSCREENRC
特定のユーザーの環境変数を指すことです。