이 쉘 출력을 파일에 쓸 수 없는 이유는 무엇입니까? [복사]

이 쉘 출력을 파일에 쓸 수 없는 이유는 무엇입니까? [복사]

저는 터치패드 에뮬레이터를 실행하는 Linux Pinephone 스크립트를 작성 중입니다. 이렇게 하려면 다음의 출력 문자열을 비교해야 합니다.

./TouchpadEmulator /dev/input/event2 /dev/input/event1

Enter 키를 누르면 터미널이 표시됩니다.

max x:719 max y:1439

그리고 터미널은 명령 프롬프트가 표시되지 않은 채 열려 있습니다. 이는 코드가 백그라운드에서 계속 실행된다는 의미입니다.

내 문제는 이 "max x:719 max y:1430"을 일부 변수, 일부 파일 또는 다음 명령에 대한 인수로 출력하려고 한다는 것입니다.

나는 다음과 같은 것을 시도했습니다

./TouchpadEmulator /dev/input/event2 /dev/input/event1 > textfile.txt

그러나 textfile.txt는 여전히 비어 있습니다.

나도 시도했다

echo $(./TouchpadEmulator /dev/input/event2 /dev/input/event1)

그러나 터미널 화면은 여전히 ​​비어 있습니다.

내 생각에는 명령이 항상 백그라운드에서 실행되기 때문에 "./TouchpadEmulator..."가 완전히 실행될 때까지 기다리기 때문에 에코가 실행되지 않습니다.

답변1

아마도 STDOUT이 아닌 STDERR에 쓰는 것 같습니다.

리디렉션 STDERR 만 사용하세요 2> textfile.txt.

읽다 man bash.

관련 정보