내 프로그램(직렬 포트에 연결된 헤드리스 임베디드 장치를 시작하는 Python 프로그램)의 출력을 쉘 스크립트를 사용하여 텍스트 파일에 기록 하고 싶습니다 console_log.txt
. 이를 위해 다음 스크립트를 작성했습니다.
#!/bin/bash
current_time=$(date "+%Y.%m.%d-%H.%M.%S")
gnome-terminal -x bash -c "cd ~/Scripts;pwd;script -c \"python test.py $1\" ~/Output/console_log_$current_time.txt;exec $SHELL"
위의 코드는 다음과 같이 읽을 수 없는(ASCII가 아닌) 문자를 파일에 씁니다.
捓楲瑰猠慴瑲摥漠桔牵摳祡〠‶灁楲〲㜱〠㨳㔲㈺‸䵐䤠呓ഊ上漠慰慲敭整獲瀠潲楶敤祢琠敨甠敳›ㄠ敔瑳漠瑰潩湥整敲›〠獕湩敤慦汵⁴潣普杩牵瑡潩楦敬⸮⸮⨪⨪⨪⨪⨪桔潣普杩牵瑡潩楦敬琠慨❴潧湩潴戠獵摥椠›㰠潮敮ാ猊慴瑲湩慭湩猠牣灩൴⼊潨敭愯瑵浯瑡潩㑮愯瑵浯瑡潩⽮噄㥆弹畁潴慭楴湯栯浯⽥畡潴慭楴湯⼴畡潴慭楴湯䐯䙖㤹䅟瑵浯瑡潩⽮湉異⽴❛灳捥牴浵睟形档物慷❶洧污彥欸眮癡Ⱗ✠灳捥牴浵湟形楤捳㍟〶⸰慷❶猧数瑣畲彭扮损楨灲眮癡Ⱗ✠灳捥牴浵睟形楤捳㕟〸⸰慷❶琧獥慷❶洧污彥㘱慷❶昧汭扟灵慟瑴潟杲眮癡崧㠠栯浯⽥畡潴慭楴湯⼴畡潴慭楴湯䐯䙖㤹䅟瑵浯瑡潩⽮湉異⽴潣普杩琮瑸††††††††††唠䕓⁒†††倠䑉䄠䍃卅⁓佃䵍乁ൄ⼊敤⽶瑴啹䉓㨸††††畡潴慭楴湯‴㈠㘲㔷䘠⸮⸮氠杯湩楟楮൴⼊敤⽶瑴啹䉓㨹††††畡潴慭楴湯‴㈠㘲㔶䘠⸮⸮氠杯湩楟楮൴匊牥慩潐瑲楬瑳㨠†❛✹㠧崧敓楲污瀠牯獴㨠†❛搯癥琯祴单㥂Ⱗ✠搯癥琯祴单㡂崧桃灩敳⁴‱›ㄠ桃灩敳⁴′›ㄠ潂牡‱敓楲污倠牯⁴›⼠敤⽶瑴啹䉓ഹ䈊慯摲㈠匠牥慩潐瑲㨠†搯癥琯祴单㡂潂牡ㅤ䤠⁐›ㄠ㈷㈮⸸⸴㈳潂牡㉤䤠⁐›ㄠ㈷㈮⸸⸴㘳潂牡㍤䤠⁐›ㄠ㈷㈮⸸⸴㔲潂牡㑤䤠⁐›ㄠ㈷㈮⸸⸴㜲潂牡㕤䤠⁐›ㄠ㈷㈮⸸⸴㠵汯敲畳瑬搠汥猠捵散獳⸮慰獳潔‽❛牳敥慫瑮䁳獤杰挮浯崧灓楬⁴潶灩‽ര⨊⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪潓湵慃摲䌠湯捥楴湯⩳⨪⨪⨪⨪⨪⨪പ⨊⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪佂剁ㅄⴠ㸭戠弱畯彴潰瑲漽瑵档ⰱ戠弱湩灟牯㵴湩档റ䈊䅏䑒′ⴭ‾㉢潟瑵灟牯㵴畯捴㉨㉢楟彮潰瑲椽据㉨⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪⨪പഊ嬊⼧敤⽶瑴啹䉓✹⼧敤⽶瑴啹䉓✸⼧敤⽶瑴啹䉓✳⼧敤⽶瑴啹䉓✲⼧敤⽶瑴啹䉓✱⼧敤⽶瑴啹䉓✰⼧敤⽶瑴卹✰൝嬊⼧敤⽶瑴啹䉓✹⼧敤⽶瑴啹䉓✸⼧敤⽶瑴啹䉓✳⼧敤⽶瑴啹䉓✲⼧敤⽶瑴啹䉓✱⼧敤⽶瑴啹䉓✰⼧敤⽶瑴卹✰൝䈊慯摲†椠⁰†‽㜱⸲㠲㐮㈮㤰慇整慷⁹灩†㴠ㄠ㈷㈮⸸⸴㔲ഴ䌊浯瀠牯
또는 gedit
다음 메시지가 표시됩니다.
Could not open the file “/home/user4/con…g_2017.04.06-16.05.48.txt”.
Unexpected error: Invalid byte sequence in conversion input
파일을 열려고 할 때.
다음과 같이 더 간단한 것을 실행할 때:
script -c ifconfig ~/user4/Scripts/test.txt
정상적으로 실행됩니다. 즉, 로그 파일에 예상된 출력이 표시됩니다. 읽을 수 없는 문자를 어떻게 방지할 수 있나요?
답변1
Linux 환경에서 Python 스크립트를 실행하는 경우 스크립트를 실행하기 전에 다음 단계를 따르세요.
$ script console_log.txt
$ run your python script
$ exit (After the script completes execution)
전체 콘솔 로그는 "console_log.txt"에 캡처됩니다.