私のシェルプロンプトは、サーバーのホスト名によって自動的に異なり、一意で一貫した色を持つことを望みます。
たとえば、特定のサーバーにログインするとき、プロンプトはそのサーバーに固有の色でなければならず、次にそのサーバーにログインするときにも同じ色でなければなりません。サーバー名と色のマッピングをハードコードしたくありません。色が必ずきれいである必要はありませんが、暗い背景にコントラストが高いと良いです。
したがって、ホスト名の決定的なハッシュを生成し、プロンプトで使用できるカラーコードに変換できます。
どうすればいいですか?
ベストアンサー1
私は結局この仕事をしました。
# get hash and byte size
prompt_hash_and_size=`hostname|cksum`
# get hash part and apply modulo 256 to put it in range 1..255
prompt_hashcolor=$(echo $prompt_hash_and_size|awk '{print $1%255 + 1}')
# use it as background color in prompt
PROMPT="%K{${prompt_hashcolor}}%F%~%f%k% "
圧縮して使用することができます
prompt_hashcolor=$(hostname|cksum|awk '{print $1%256}')