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