2017-03-10 19 views
-1

Bash PS1 환경 변수의 \h 필드에 다른 색상을 사용하여 신속하고 시각적으로 다른 시스템에 로그인했음을 기억합니다.기계 별 PS1 프롬프트 생성을위한 유지 관리 방법

고정 호스트 식별자에 연결된 PS1을 안정적으로 생성하는 방법을 찾고 있습니다. 말하자면, hostid 명령을 사용하십시오.

export PS1="\[email protected]\[$(tput bold)\]\[$(tput sgr0)\]\[\033[38;5;35m\]\h\[$(tput sgr0)\]\[$(tput sgr0)\]\[\033[38;5;15m\]\[$(tput sgr0)\]:\[\033[38;5;245m\]\w\[$(tput sgr0)\]\[\033[38;5;15m\]\[$(tput sgr0)\]\\$ " 

무엇 엉망 :

원래 bashrcgenerator.com에 의해 생성 된 것을 각색 한 내 PS1은처럼 보였다.

모든 진행을 시작하기 위해 첫 번째 단계는 리팩터링을 수행하는 것이 었습니다. 이것은 다음 스크립트에서 나를 착륙 시켰습니다 :

bold="$(tput bold)" 
reset="$(tput sgr0)" 
green="\e[38;5;35m" 
gray="\e[38;5;245m" 

directory='\w' 
host='\h' 
user='\u' 

function colorize() { 
    echo -n "${2}${1}${reset}" 
} 

export PS1="${user}@$(colorize $host $green):$(colorize $directory $gray)\\$ " 

이 시점에서, 당신은 적어도 도대체 무슨 일이 일어나는지 볼 수 있습니다.

지금, 나는 같은 기능을 쓸 필요가 :

  • 필드 부분 xx;y;zzm의 의미는 예를 들어, 내부에 무엇입니까 : 그렇게하기 위해서는

    get_repeatable_color_for_hostid() { 
        # hash the $(hostid) into a valid color escape string 
        # e.g. 16ab1d60 --> \e[38;5;35m 
    } 
    

    을 이해합니다 \e[38;5;35m?

  • hostid에서 해시를 해당 색상 이스케이프 시퀀스 인 s.t. 색상은 이며 가능한 한 많이입니다. 이 페이지는 나에게 모든 세부 사항을 이해하기 위해 많은 도움이 색상에 관해서는

답변

1

: http://misc.flogisoft.com/bash/tip_colors_and_formatting

단순히 각 호스트에 색상을 지정하는 것입니다 하나 개의 아이디어에서 선택하는 많은 색깔이 아니기 때문에를, 그리고 당신이 더 많은 호스트를 가지고있는 경우에는 각 그룹에 중요성 (dev, prod 등)에 따라 호스트를 그룹화하십시오. COLOR=$(($(hostname | cksum | cut -f1 -d" ")%256+1))

+1

쿨 :

또한 호스트 이름의 체크섬을 사용하여 (1 ~ 256) 색상을 생성하는이 아이디어가있다! 그 링크는 사자의 몫을 잘못 확인했습니다. 마술 숫자 '38'과 '5'에 대해 궁금해하는 시점에서? 그것은 단지 미성년자입니다. 나는 당신의 제안과 비슷한 것을 구현했고 그것을 내 점선으로 체크했다 : https://github.com/jamesonwilliams/dotfiles/blob/master/.bashrc.ps1#L12 – Jameson