GNU Screen이 프롬프트를 재설정하지 못하게하려면 어떻게합니까? [닫은]


13

화면을 실행하면 프롬프트가 변경됩니다. 이 동작을 어떻게 방지합니까? 예를 들면 다음과 같습니다.

$ echo $PS1
\[\e]0;\h:Prod\a\]\n\[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\]\n\$
$ screen
$ echo $PS1
[\u@\h \W]\$

흥미롭게도 다른 컴퓨터에서는이 작업을 수행하지 않습니다. 해당 시스템은 Redhat 4 업데이트 4이며 화면 버전은 4.00.02 (FAU) 5-Dec-03입니다.

답변:


16

.screenrc 파일에 (아직 없다고 가정) 추가하십시오.

쉘-$ SHELL

이것은 스크린 세션을 초기화하거나 한 터미널 내에서 다른 터미널을 만들 때 로그인 쉘을 제공합니다.


1
.screenrc에 'shell / bin / bash'가 있습니다. 분명히 'shell-/ bin / bash'이거나 제공 한 것입니다.
Swoogan

2

많은 배포판에서는 프롬프트를 설정하기 전에 터미널 유형을 확인합니다. 예를 들어 우분투에는 기본 .bashrc에 작은 보석이 들어 있습니다.

# 멋진 프롬프트를 설정합니다 (색상을 원치 않는 한 비 색상).
"$ TERM"사례
    xterm- 컬러) color_prompt = yes ;;
esac

화면은 자체 TERM 변수 ( "screen")를 사용하기 때문에 bash는 멋진 색상 프롬프트를 표시 할 수 없으므로 기본적으로 더 간단한 프롬프트를 표시합니다. 물론 화면은 일반 터미널과 동일한 복잡한 프롬프트를 완전히 사용할 수 있습니다.

따라서이 동작을 무시하려면 ~/.bashrc파일 끝에 선호하는 PS1 옵션을 설정하십시오 . 또는 모험심이 느껴지면 TERM 변수의 값을 확인하는 테스트를 찾아 "xterm-color"와 함께 "screen"을 허용하도록 수정하십시오.


1

아마도 이것은 ~ / .screenrc 파일에 설정된 사용자 정의 변수입니까?


1
예, 전역 또는 개인 screenrc에서 setenv PS1을 확인하십시오
반경

4
그리고 어떤 맞춤형 변수가 될까요? 답을 모른다면 대답하지 마십시오.
Swoogan

0

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>
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.