오류를 추적할 수 없습니다.

오류를 추적할 수 없습니다.

내 프로그램을 실행할 때 다음 오류가 발생합니다.

today.ksh[36]: test: 0403-004 Specify a parameter with this command.
sed: 0602-419 Cannot find or open file /home/tmp/filename.
today.ksh[37]: test: 0403-004 Specify a parameter with this command.
today.ksh[24]: test: 0403-021 A ] character is missing.

그러나 나는 다음의 의미를 이해할 수 없습니다.

  • sed:0602-419 0602-419 무슨 뜻인가요?
  • Today.ksh[37] 37은 무슨 뜻인가요? 테스트: 0403-004는 무엇을 의미합니까?

    즉, "Test:0403-004"와 같은 숫자 범위는 무엇을 의미합니까? ksh에서 디버깅할 때 어떻게 유용합니까?

답변1

AIX에 오신 것을 환영합니다.

IBM 운영 체제의 일반적인 아이디어는 시스템 메시지에 식별 영숫자 코드가 있다는 것입니다. 메시지는 다른 언어로 번역될 수 있지만 코드는 동일하게 유지됩니다. IBM 문서에는 일반적으로 사람들이 코드를 통해 이러한 메시지를 검색할 수 있는 참조 매뉴얼이 있습니다.

OS/2 및 OS/400에서 코드는 세 글자 형식을 취합니다.시설표시기와 4자리 숫자메시지 번호. (OS/2 사용자는 와 같은 이름을 기억하고 및 SYS0002명령을 사용하여 명령줄에서 이러한 코드를 찾을 수 있습니다.) AIX에서는 4비트 운영 체제의 형태를 취합니다.helphelpmsg요소숫자와 세 자리 숫자메시지 번호.

따라서 0403-004는 "범위"가 아닙니다. 구성요소 번호 0403 메시지 번호 004에 해당하는 메시지 코드입니다. 부품 0403은 Korn Shell입니다. 구성 요소 0602는 UNIX 텍스트 편집 도구 세트입니다: vi, ex, ed및 .sedawk

예, AIX에는 이러한 모든 코드를 나열하는 대규모 참조 매뉴얼이 있습니다.

그러나 이것이 전적으로는 아니다.상세한메시지 처리 중. (반대로, OS/2 도움말 도구에는 SYS명령줄에 표시되는 대부분의 메시지에 대한 자세한 설명과 작업이 있습니다.) 따라서:

  • 0403-004: 변수 확장 주위에 따옴표를 넣는 것을 잊어버렸을 가능성이 높습니다. 이로 인해 변수가 설정되지 않은 경우 확장이 비어 있게 되어 잘못된 명령 구문이 발생하게 됩니다 test.
  • 0403-021: 명령으로 호출되는 경우 [이 명령의 마지막 매개변수는 이어야 합니다 ]. 일반적으로 이 오류는 ]마지막 문자를 단어 자체로 처리하는 것을 잊어버렸기 때문에 발생합니다.

추가 읽기

관련 정보