
터미널에 콘텐츠를 쓰는 터미널 응용 프로그램을 만들고 있습니다. 테스트하려면 실제로 터미널에 표시되는 내용을 테스트해야 합니다. 터미널에 실제로 표시된 데이터를 어떻게든 읽을 수 있는 방법이 있나요?
터미널은 파일이나 어딘가에 있어야 하므로 거기에 있는 내용을 읽을 수 있는 방법이 있어야 합니다.
cat /dev/tty
거기에 데이터 흐름을 제공하는 것 같습니다...하지만 키 입력을 보고 싶지는 않습니다. 내가 쓴 것뿐입니다.
답변1
일부 터미널 프로그램은 화면 덤프를 제공합니다(예:xterm), 그러나 대부분은 그렇지 않습니다(참조화면에 존재하는 명령줄 텍스트를 파일로 저장하시겠습니까? (비그래픽 Linux)예를 들어). gimp와 같은 도구를 사용하여 스크린샷을 찍을 수 있지만 실제 문자가 무엇인지는 알 수 없습니다. 발전하려면 이것을 알아야 해요.
나는 script
출력을 에 기록하는 데 사용합니다 typescript
. cat
이를 화면으로 되돌릴 수 있습니다(또는 less -R
이스케이프 시퀀스가 충분히 간단한 경우 사용). 더 복잡한 작업이나 긴 추적의 경우 다른 도구를 사용합니다.
slowcat
cat
진행 속도 를 늦추다vile-pager
필터는 읽을 수 있는 형식으로 이스케이프됩니다.less
— 색상 순서는 여러 줄에 걸쳐 작동하지만 여전히 한 줄 커서 이동으로 제한됩니다. 사용하는 필터입니다vi와 유사한 이맥스, 특별한 목적을 통해유용.
차이점을 설명하기 위해 다음은 내 Debian 컴퓨터 중 하나에서 실행되는 파일 less -r
의 스크린샷 입니다.typescript
apt-get update
대신 vile-pager
텍스트가 포함된 위치를 강조표시하세요.
어느 쪽이든(덜 또는 더 비열하게), 응용 프로그램이 화면 주위로 커서를 이동하는 경우 출력을 볼 수 있는 유일한 방법은 cat/slowcat/etc를 사용하는 것입니다.
답변2
tee
한 가지 옵션은 추적하려는 모든 명령 전에 도구를 사용하는 것입니다. 이 방법으로 선택한 로그 파일에 모든 출력을 저장할 수 있습니다.
bash
모든 출력을 다음 이름의 텍스트 파일에 저장하는 아래 예를 참조하세요 log.txt
.
bash | tee log.txt
echo 'hello world'
ls
exit
cat log.txt
완료되면 CTRL+D
위의 예와 같이 를 사용하거나 간단히 입력하여 새 BASH 세션을 종료할 수 있습니다.exit
실제로 터미널에 전달된 명령을 찾으려는 경우(원래 질문에서 예상한 것인지 확실하지 않음) 언제든지 실행하거나 history
확인할 수 있습니다.~/.bash_history
답변3
PARAMETER_EMMC=10
while [ $PARAMETER_EMMC -eq 10 ]
do
read -u $USBFPI -r -n 3000 -t .3 text
if [[ $text == *"text read from USB"* ]]; then
Execute
fi
done