2009-08-23 5 views
2

[업데이트] 질문은 질문 GNU Screen: Programmers quotes in ReadbufGNU Screen: files to numbered buffers? 관련이있다. 문제가 해결되지 않았으므로이 질문은 환경 변수에 대한보다 일반적인 개념을 목표로합니다. 나의 믿음은 스크린을보다 효율적으로 만드는 열쇠라고 생각합니다.GNU 화면 : 환경 변수

$ ^a :readreg a `echo $path` 
$ ^a :readbuf $a/debugging_code.php 
$ ^a ] 

3. 어떻게 : 내가 좋아하는 화면의 버퍼를 재사용 할 수있는 방법

$ export path=`pwd` 
$ ^a :readbuf `echo $path`/debugging_code.php 

2 :

1. 어떻게 같은 화면에 배쉬의 변수를 사용할 수 있습니다 환경 변수와 같은 Screen의 버퍼를 사용합니까?

+0

이것은 내가 방금 여기에서 대답 한 것과 같은 질문 인 것처럼 보입니다. http://stackoverflow.com/questions/1318186/gnu-screen-programmer-quotes-in-readbuf –

+0

그렉 : 업데이트되었으므로 분명히 분명합니다. 지금. –

+0

(1)에 대한 카운터 질문 : 여러 개의 셸을 열었을 때 각기 다른 환경을 사용하는 경우 셸의 환경 변수에서 화면을 사용 하시겠습니까? – rampion

답변

4

다음 명령은 새 화면 세션을 만들지 않지만 화면 내부 변수를 만듭니다. 나는 다음과 같은 구문을 지원 4.0.3을 화면에 패치를 만들었

C-a :readbuf $a 
+0

+1의 차가움. 우분투 화면에서 비슷한 - X export foo = "foo world"는 어떤 이유로 작동하지 않았습니다. –

+3

이 컨텍스트의 setenv는 * shudder * csh 명령이 아닌 화면 명령입니다. –

+0

사용법을 분명히 하시겠습니까? 왜 우분투에서 작동하지 않는지 모르겠다. –

1

:

$ screen -X setenv a "$PWD/debugging_code.php" 

그런 다음 새로운 변수를 사용하여 명령 행에서이를 실행하면 쉘 확장을 사용할 수 있습니다 :

^A :readbuf !shell-command

이는 임의의 쉘 명령 파이프와 스크린 버퍼에 출력 Exec을 할 수있다. 이것은 popen을 사용하여 서브 쉘을 실행하고 표준 출력을 bufferfile 설정에 지정된 현재 파일에 복사 한 다음 (해당 파일을 읽음) 구현되므로 유의하지 않으려는 사항을 겹쳐 쓰지 않도록주의하십시오. 또한,이 패치는 아마도 매우 안전하지 않을 수 있습니다.

예는 다음과 같을 수 있습니다 입력으로

^A :readbuf !cat $HOME/projects/foobar/file.txt

모든 쉘 명령은 그대로 실행됩니다.

패치가 들어있는 Git 저장소에 대해서는 Github의 gnu-screen-readbuf-exec을 참조하십시오.

+0

+1 멋지다! 그것에 종사해야한다 : D –