"xterm -hold -e" 명령의 출력을 리디렉션하는 방법

"xterm -hold -e" 명령의 출력을 리디렉션하는 방법

tee이를 사용하여 터미널에서 명령 출력을 기록 할 수 있다는 것을 알고 있습니다 . 예를 들면 다음과 같습니다.

df -h | tee ~/log.txt

그러나 다음과 같이 더 복잡한 명령을 사용하여 이 작업을 수행하려면 어떻게 해야 합니까?

xterm -hold -e program arg1 arg2 arg3

나는 성공하지 않고 이것을 시도했습니다.

xterm -hold -e matlab -noxterm -nojvm -r "solver('/path/to/a/folder',1)" | tee ~/log.txt

xterm내 목표는 합계의 모든 출력을 기록하는 것입니다.아니요원래 터미널입니다. 이것

답변1

xterm 로깅을 활성화하고 모든 xterm 출력을 파일로 보낼 수 있습니다:

xterm -l -lf logfile.txt -e program

답변2

출력을 리디렉션하면 터미널에서 실행되는 프로그램의 동작이 변경될 수 있습니다. 캡쳐하고 싶다면모두프로그램의 출력은 다음과 같이 프로그램을 방해하지 않는 콘텐츠를 사용합니다 script.

xterm -hold -e script -c "program arguments" output.log

(리눅스) 또는

xterm -hold -e script output.log program arguments

(OSX, 기타 BSD)

또는 리소스를 사용하거나 메뉴 항목을 사용하여 xterm"프린터"에 화면 쓰기를 설정하도록 설정할 수 있습니다.printerCommand지금 모두 인쇄.

추가 자료:

답변3

실행한 프로그램의 출력을 xterm에 알리고 싶다면, xterm -hold -e " program arg1 arg2 arg3 | tee ~/log.txt"

예를 들어 우분투에서는 gnome-terminal다음과 같은 것을 실행합니다.xterm -hold -e " firefox | tee ~/log.txt"

오류를 기록하는 옵션도 있습니다

xterm -hold -e program 2> errors.txt일반적으로 콘솔에 발생하는 모든 오류를 파일로 리디렉션합니다.

하지만 내 생각엔 이건 좀 불필요한 것 같다. 한 터미널에서 다른 터미널로 프로그램을 실행합니다.

관련 정보