추가 읽기

추가 읽기

예를 들어 명령의 출력을 보고 싶다고 가정해 보겠습니다 apt-get. 그러나 출력을 리디렉션하는 명령을 실행하면 다음과 같습니다.

apt-get install some-application -y > apt_out.txt

또는

apt-get install some-application -y | tee apt_out.txt

그러면 프로그램 입력과 상호 작용하는 능력을 잃게 됩니다. 그러나 내 해결 방법은 세션을 사용하는 것이지만 screen -L더 깨끗한 것이 있습니까?

답변1

불특정 개념보다는 기능 세트 및 동작 측면에서 이를 살펴보겠습니다.청결.

그다지 다재다능하지 않음메커니즘은 screen -L, 그러나그럼에도 불구하고귀하의 목적을 위해 이 명령은 아무 작업도 수행하지 않습니다 screen( tee즉, 쉬운 대화형 사용을 허용하고 표준 출력이 터미널이 아님을 발견할 때 프로그램을 비대화형 또는 버퍼 출력 모드로 전환하지 않습니다) script.

스크립트 -c "apt-get 일부 응용 프로그램 설치" apt_out.txt

다른 메커니즘 scriptptybandage명령 파이프라인에 사용하기에 적합합니다.확실히이를 필요로 하는 외부 표준 I/O는 실제로 터미널입니다. (실제로 주요 사용 사례는 비대화형 표준 I/O를 서브루틴에 대한 대화형 표준 I/O처럼 보이게 만드는 것입니다.) 이는 프로그램이 대화형/라인 버퍼 모드 실행에서 이를 수행하도록 설득하는 방법입니다. 여전히 직선 파이프라인 tee방식을 사용하고 있습니다.

ptybandage apt-get install some-application 2>&1 | ptybandage apt-get install some-application 2>&1 | ptybandage apt-get install some-application 2>&1 |

추가 읽기

답변2

screen -L나에게는 좋은 해결책처럼 들립니다. 또 다른 옵션은 script(일부 사람들이 혼란스러워하는 제어 문자 및 잘못된 입력도 기록합니다)입니다.

많은 프로그램은 입력과 출력이 터미널에 연결되어 있는지 테스트하고 이에 따라 동작이 실패하거나 변경됩니다. lsvs. ls | cat의 작은 예를 참조하세요 .

관련 정보