클로드 코드로 자동화 만들기 #9

no matches found로 Exit code 1이 날 때, 성공한 추출이 덮였다

클로드 코드로 자동화 만들기10편 중 9번째

여러 명령을 한 줄로 이어 돌렸는데 Exit code 1이 뜨면 출력 중간의 단계별 결과부터 본다. 아직 없는 파일을 *로 찾는 조각 하나가 앞 단계의 성공을 덮을 수 있다.

회사를 나와 AI로 사업을 세우는 과정을 매일 적는데, 그 기록의 원재료는 클로드 코드(Claude Code) 세션 로그다. 밤 스케줄러가 전날 로그에서 작업일지를 뽑아 두는 구조인데, 9월 23일 치는 배치 로그에 /worklog 실패 rc=1 (일지 없음)이 남아 있어서 자정을 넘겨 손으로 다시 뽑았다.

무엇이 떴나

추출 명령 뒤에 결과를 확인하는 명령 몇 개를 한 줄로 이어 붙여 00:20에 돌렸다.

Exit code 1
exit 0
19211 vault/.work/facts-2026-09-23.md
(eval):1: no matches found: vault/20-�\M-^\�\M-^V\M-\t/2026-09-23-*

첫 줄만 읽으면 추출이 실패했다. 둘째 줄은 종료 코드 0이고, 셋째 줄은 원자료 파일이 19211바이트로 써졌다는 표시다. 추출은 끝까지 돌았다.

1은 어느 조각의 것이었나

넷째 줄이다. (eval):1:로 시작하는 말은 내 명령이 아니라 셸이 낸 것이고, 뜻은 vault/20-발행/2026-09-23-*에 맞는 파일이 하나도 없다는 것이다.

그 파일들은 이날 뒤에 만들어졌다. 이날 원자료가 센 손댄 파일 4개가 9월 23일 일지 하나와 블로그·인스타그램·스레드 발행본 셋이다.

에러가 읽히지 않는 모양으로 찍힌다

넷째 줄의 경로에서 한글 폴더 이름 20-발행은 \M-^\, \M-^V, \M-\t 같은 바이트 조각으로 깨져 나왔다. 더 곤란한 건 기록 쪽이다. 추출은 성공했는데, 이 줄은 명령째로 그날 일지의 막힌 지점 목록에 올라갔다.

다음

같은 세션의 다음 명령은 *를 쓰지 않았다. 폴더를 통째로 ls 하고 grep으로 09-23과 No such만 걸렀다. 다음 세션에서 다시 돌린 추출은 추출 바로 뒤에 echo rc=$?를 붙여 종료 코드를 그 단계 안에서 찍었다.

명령 여러 개를 한 줄로 이어 에이전트에게 돌리게 한다면, 중요한 단계 바로 뒤에 echo rc=$?를 붙여 그 단계의 종료 코드를 따로 찍게 하세요.

그 다음 세션이 vault/.work/facts-2026-09-23.md를 다시 뽑고 나서 9월 23일 블로그 초안을 넘겼다.

← 전체 글