답변:
많은 배포판에서는 프롬프트를 설정하기 전에 터미널 유형을 확인합니다. 예를 들어 우분투에는 기본 .bashrc에 작은 보석이 들어 있습니다.
# 멋진 프롬프트를 설정합니다 (색상을 원치 않는 한 비 색상). "$ TERM"사례 xterm- 컬러) color_prompt = yes ;; esac
화면은 자체 TERM 변수 ( "screen")를 사용하기 때문에 bash는 멋진 색상 프롬프트를 표시 할 수 없으므로 기본적으로 더 간단한 프롬프트를 표시합니다. 물론 화면은 일반 터미널과 동일한 복잡한 프롬프트를 완전히 사용할 수 있습니다.
따라서이 동작을 무시하려면 ~/.bashrc
파일 끝에 선호하는 PS1 옵션을 설정하십시오 . 또는 모험심이 느껴지면 TERM 변수의 값을 확인하는 테스트를 찾아 "xterm-color"와 함께 "screen"을 허용하도록 수정하십시오.
screenrc가 있거나 SHELL -$SHELL
없는 컴퓨터 setenv PS1
에서 bashrc의 (dumb) 터미널에 대한 특별한 테스트가 없는 동일한 문제 (화면에 더 이상 사용자 정의 프롬프트가
없음 )가 있습니다.
사용 된 $ TERM 설정 :
$ echo $TERM
urxvt-unicode-256color
screenrc에서 Screen 아래에 내 사용자 정의 프롬프트가 다시 표시됩니다.
- #term xterm-256color
+ term urxvt-unicode-256color
PS : 다른 계정이 필요 없었다,하지만 bashrc에의 재생성합니다에 대한 테스트 및 현대 터미널이 방법으로 1 :
if [[ $'\n'${match_lhs} == *$'\n'"TERM "${safe_term}* ]] ; then
PS1=<my fancy prompt>
나는 이것이 잘 작동한다고 믿는다.
if [ "$TERM" != "dumb" ]; then
PS1=<my fancy prompt>