Arduino가 직렬 포트를 통해 Ubuntu PC로 데이터를 전송하고 있습니다. PC에서 시리얼 모니터를 열어서 데이터를 볼 수 있기 때문에 가능합니다. Arduino는 2초마다 한 줄의 데이터를 보냅니다. 출력을 내 PC의 텍스트 파일로 리디렉션하고 싶습니다. 나는 시도했다:
(stty raw; cat > /home/me/received.txt) < /dev/ttyUSB2
작동하지만 수신된 모든 줄을 파일에 추가합니다. 매번 파일을 덮어쓰게 하고 싶습니다. 즉, 파일에는 가장 최근에 수신된 데이터의 한 행만 포함되어야 합니다.
나는 < 대 <<가 문제를 해결할 것이라고 생각했지만 뭔가 빠진 것 같습니다. 누구든지 올바른 방향으로 나를 가리킬 수 있습니까?
답변1
나는 다음과 같은 것을 시도할 것입니다:
(stty raw; while IFS= read -R line; do
printf '%s\n' "$line" > /home/me/received.txt; done) < /dev/ttyUSB2
답변2
또 다른 가능성은 awk를 약간 남용하는 것입니다.
( stty raw; awk -v f="outfile" '{print >f; close(f)}' )<tty