GNU 화면에서 stdin을 읽고 레지스터에 저장하는 방법은 무엇입니까?

GNU 화면에서 stdin을 읽고 레지스터에 저장하는 방법은 무엇입니까?

저는 GNU 화면을 사용하고 있으며 나중에 천천히 붙여넣기 위해 표준 입력의 입력을 레지스터에 저장하고 싶습니다. 나는 임시 파일을 사용해 보았고 (이 파일은 레지스터로 읽을 수 있음 readreg) 다음을 사용했습니다 cat.

:eval "exec | sh -c 'cat >/tmp/screentempfile'"

CTRLD그런데 Send EOF to 를 누르면 cat도착하지 않습니다.

답변1

이는 다음과 같아야 합니다:

:exec ... sh -c 'cat > ~/.screen-paste'

cat에서 stdin이 필요 screen하므로 첫 번째 .명령은 아무것도 출력하지 않아야 합니다. 따라서 다른 두 개의 fd도 screen액세스 가능하지만 중요하지 않습니다 ..

답변2

완벽을 기하기 위해 표준 입력에서 읽고 입력을 레지스터에 저장하는 작업 명령은 다음과 같습니다.

:exec ... sh -c 'cat >"$HOME/.screen-stdin.tmp" && screen -S "$STY" -X readreg p "$HOME/.screen-stdin.tmp"'

관련 정보