2012-08-31 2 views
0

화면을 사용하고 때때로 .bashrc 프로필을 변경합니다. 따라서 모든 스크린 창에 .bashrc 변경 사항을 적용하고 싶습니다. 불행하게도, screen은 새 창을 생성 할 때만 프로필을 읽고 기존 창에 .bashrc를 다시로드하지 않습니다.화면의 모든 창에 대해 명령 실행

내 화면 세션에 하나 이상의 창이 있습니다. 화면을 첨부하기 전에 각 창에 명령을 실행하고 싶습니다. 명령은 간단한 "source ~/.bashrc"입니다.

나는 시도 : 그것은 단지 하나의 창에 대해 완벽하게 일 것

screen -X stuff "source ~/.bashrc"`echo -ne '\015'` 

. 그래서 "prev"또는 "next"명령을 사용하여 화면 창을 반복 할 수 없습니다.

나는 이미 읽고 화면 남자, 문서, 그리고 이벤트 내 문제 :

당신이 올바른 방향으로 날 직접 수의 솔루션을 검색하려고? 아니면 누군가 이미 비슷한 문제를 해결 했나요? 당신이 -Q 옵션을 사용할 수 있습니다 screen의 최신 버전을 사용하는 경우

답변

1

, original threadthis answer를 참조하십시오. 이 여기에 작동합니다

screen -Q windows | sed 's/[^0-9]*/\n/g; s/^\n//g' \ 
| while read; do 
    screen -S test -p $REPLY -X stuff "source ~/.bashrc"$'\n' 
    done 

으로 :

$ screen --version 
Screen version 4.01.00devel (GNU) 2-May-06 

주, 여러 세션이있는 경우, -S로 이름을 지정합니다. 이 경우 test이라는 세션으로 작업하고 있습니다. -p은 명령을 보낼 창을 화면에 알려줍니다.

또한 ANSI-C quoting ($'\n')의 사용에 유의하십시오.

-Q 명령이 실행이 screen 제로 msgwait 설정하여이 주변 명령, 작업을 실행하기 전에 msgwait초 대기 및 실행 즉

screen -S test -X msgwait 0 
... 
screen -S test -X msgwait 5 

5 후에 다시

디폴트 값이다.

+0

Thx! 내 화면 버전은 4.00.03jw4입니다. 'screen -RR'을 사용하기 때문에 화면 이름을 모르겠다. (SSH 로그인 화면 자동 시작하기 (http://pascal.nextrem.ch/2010/04/30/automatically-start-screen-on-ssh-login) 참조). /)). 그러나 나는 하나 이상의 화면 세션이 없습니다. 나는 새로운 버전의 화면과 당신의 솔루션을 사용하려고 노력할 것이다. 어쩌면 그날을 절약 할 수 있습니다 :) – hevil

관련 문제