Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

ユーザ/ホスト毎に決まったプロンプトの色を自動割り当て

More than 5 years have passed since last update.

乱数でプロンプトの色決めると、ログインのたびに違ったりしてしまい紛らわしい。同じユーザ、ホストなら同じ色で表示されるようにしたい。

例示したプロンプトのスクリーンショット1 例示したプロンプトのスクリーンショット2

↑これは↓こんなかんじ(zsh で動作確認済み)

colors=(
    ## 気に入らない色はコメントアウト
    # $'%{\e[0;30m%}' # black
    $'%{\e[0;31m%}' # red
    $'%{\e[0;32m%}' # green
    $'%{\e[0;33m%}' # brown
    $'%{\e[0;34m%}' # blue
    $'%{\e[0;35m%}' # purple
    $'%{\e[0;36m%}' # cyan
    # $'%{\e[0;37m%}' # gray

    ## light colors
    # $'%{\e[1;30m%}' # black
    $'%{\e[1;31m%}' # red
    $'%{\e[1;32m%}' # green
    $'%{\e[1;33m%}' # brown
    $'%{\e[1;34m%}' # blue
    $'%{\e[1;35m%}' # purple
    $'%{\e[1;36m%}' # cyan
    # $'%{\e[1;37m%}' # gray
)
colored_user=$colors[$((`echo "$USER" | sum | cut -f1 -d' '`%${#colors}))+1]$USER
colored_host=$colors[$((`echo "$HOST" | sum | cut -f1 -d' '`%${#colors}))+1]$HOST
PROMPT="$colored_user"$'%{\e[1;39m%}'"@$colored_host"$'%{\e[1;39m%}'"%% "

色が被って仕方ないって時は、$SALT みたいな変数用意して sum に与える文字列を変えるといいかも。

k_ui
ねこほしい
http://k-ui.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away