안녕하세요. 스크립트 출력을 파일로 보내려고 합니다.
내 스크립트는
gnome-terminal -- ./program +config
몇 가지 게시물을 확인하고 시도했습니다.
gnome-terminal -- "./program +config 2>&1 | tee output.txt"
또는
gnome-terminal -- 'bash -c "./program +config 2>&1 | tee output.txt"'
그리고 다른 많은 변형이 있지만 잘 작동하지 않습니다
우분투 22.04를 사용하고 있습니다.
답변1
정답
당신이 하고 있는 일을 구현하기 위해 그것을 사용할 필요는 없을 것입니다 gnome-terminal
. ./program
gnome-terminal에서 실행하는 것보다 출력을 캡처하는 더 좋은 방법이 있을 수 있습니다 .
아직도 gnome-terminal을 사용하고 싶으신가요?
Konsole이나 xterm과 같은 다른 터미널과 달리 세션 출력을 기록하는 옵션을 찾을 수 없습니다. Gnome 매뉴얼에는 데이터 롤백이 언급되어 있습니다.
롤백 데이터는 디스크의 시스템 임시 파일 기본 위치(일반적으로 /tmp)에 압축 및 암호화된 파일로 저장됩니다. 이러한 파일은 생성 직후 연결이 해제되므로 디렉터리 목록에 표시되지 않습니다. 해당 터미널이 닫히면 점유된 디스크 공간이 해제됩니다.
Gnome은 사용자가 출력 로그를 얻지 못하도록 최선을 다하고 있는 것 같습니다. 이 유틸리티를 사용하여 이 문제를 해결할 수 있습니다 script
. 매뉴얼 페이지에서:
script - make typescript of terminal session
대답은 간단합니다. script
프로그램을 실행하기 전에 시작하면 됩니다. 즉, 다음을 교체하십시오.
gnome-terminal -- ./program +config
그리고 gnome-terminal -- script -f $LOG_FILE -c "./program +config"
.
예를 들어 프로그램이 종료된 후 출력을 찾아야 하는 위치 $LOG_FILE
에 올바른 값을 지정해야 합니다 .LOG_FILE=$HOME/.terminal.log