hardstatus에 화면의 세션 이름을 포함시키는 방법은 무엇입니까?


17

프로젝트마다 다른 화면 세션을 사용합니다. 와 같은 시작 화면 screen -S project1. 이제 hardstatus 줄에 'project1'을 언급하고 싶습니다.

세션 이름은 환경 변수 STY :에서 얻을 수 있습니다 STY=13539.project1.
그러나 이것을 화면으로 가져 오는 방법은 무엇입니까? hardstatus에서 backtick 명령과 %`를 시도했지만 제대로 얻을 수없는 것 같습니다.

제가 한:

.screenrc :

hardstatus string '%H:%`'
backtick 0 30 30 echo $STY

운이 없다, 빈 %`.

backtick 0 30 30 sessionname

여전히 운이 없다, sessionname : 찾을 수 없음

답변:


18

이 문자열을 원하는 경우 추가 정보와 함께 포함시킬 수 있습니다 $PS1.

\[\e]0;$STY\007

변수의 평가를 지연시키기 위해 작은 따옴표 안에. 그런 다음 이것을 다음에 추가하십시오 ~/.screenrc.

hardstatus string '%H:%h'

불행히도, 기능에 대해 생성되는 명령 환경 screen에는 설정되지 않습니다 .$STYbacktick

위의 옵션 대신 다른 옵션 :

hardstatus string '%H:%`'
backtick 0 30 30 sh -c 'screen -ls | grep --color=no -o "$PPID[^[:space:]]*"'

이것의 장점은 sessionname명령 을 사용하여 변경 한 내용을 따른다는 것입니다 . 첫 번째 옵션은 그렇지 않습니다.

편집하다:

에서 여기 :

화면 소스가 .screenrc 인 경우 $ STY가 아직 설정되지 않았으므로 .screenrc에서이 트릭을 사용할 수 있습니다.

    screen 
    screen $SHELL -c 'screen -X caption always "$STY"' 

즉, 첫 번째 창에 화면 명령을 보냅니다.


1
로 시작하는 솔루션의 경우 backtick: (1.) backtickbash 내장입니까? GNU 스크린 명령? 이진 실행 파일? 맨 페이지가 있습니까? (2) 나는 그것을 시도했기 때문에 작동한다는 것을 알고 있지만 gnu-screen .screenrc구문이 hardstatus명령에 한 줄이 필요한 것처럼 보일 때 두 줄 명령을 실행하려면 어떻게해야 합니까? (3) 세션 이름 뒤에 텍스트를 추가 할 수 있도록 명령을 어떻게 수정합니까?
Trevor Boyd Smith

@TrevorBoydSmith : backtickscreen명령입니다. 의 맨 페이지에서 검색하십시오 screen. 나머지 질문과 관련하여 새로운 질문을 게시하는 것이 가장 좋습니다. hardstatus 출력이 화면에서 두 줄을 차지할 수 있다고 생각하지 않습니다. 당신은 사용할 수 있습니다 sed또는 awk대신 grep일을하는 grep내 예제에서 일을하고 일부 여분의 텍스트를 추가합니다.
추후 공지가있을 때까지 일시 중지되었습니다.

내가 "two line"이라고 말했을 때, 내가 의미 한 바를 다시 말해 보도록하자. 나는 별도의 줄에 %` 있는 backtick것에 혼란스러워 ... 그들은 관련이없는 것처럼 보였지만 이제는 두 가지가 관련 / 필요 / 유효한 구문 (이상한 구문 IMO이지만)이라는 것을 알기 위해 문서를 읽었backtick 으므로 .
Trevor Boyd Smith

3

나에게 이것은 %Shardstatus에 삽입하는 것이 쉽다 .

MWE (.screenrc) :

hardstatus on
hardstatus alwayslastline
hardstatus string "%S"

그러나 이것은 ID 없이 세션 이름 표시합니다 (예 ${STY#*.}:). 귀하의 예에서 : project1.

( 완전성을 위해 여기여기 에 다른 질문에 대한 동일한 대답 ).


2
참고로, "% S"는 최신 버전의 gnu-screen (Fedora 21 버전에서는 작동)에서 작동하지만 이전 버전에서는 작동하지 않습니다 (CentOS 6 버전에서는 작동하지 않음).
Trevor Boyd Smith
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.