수정 : 예기치 않은 토큰`( '근처의 구문 오류

예기치 않은 토큰`( '근처 의 오류 메시지 구문 오류 는 Unix 유형 환경, Cygwin 및 Windows의 명령 행 인터페이스에서 발생합니다.이 오류는 편집 된 쉘 스크립트를 실행하려고 할 때 발생합니다. 이전 DOS / Windows 또는 Mac 시스템에서 생성되었습니다.

예기치 않은 토큰`( '근처의 구문 오류

이 오류 메시지는 파일을 수동으로 복사하는 등 일상적인 작업을 위해 Linux 명령 줄에 명령을 입력 할 때도 나타납니다.이 오류 메시지가 발생하는 주된 이유는 구문이 잘못되었거나 OS의 다른 시스템 명령을 해석하는 데 문제가 있기 때문입니다. 껍질.

예기치 않은 토큰`( '근처에 구문 오류가 발생하는 원인은 무엇입니까?

이 오류 메시지의 이유는 매우 다양하며 명령을 실행할 때 수천 가지 구문 오류가 발생할 수 있으므로 한 기사에 나열 할 수 없습니다. 이 오류의 핵심 이유는 다음과 같습니다.

  • 두 플랫폼에서 명령을 실행할 때 구문이 잘못 되었습니다. 명령을 올바르게 사용하지 않거나 잘못된 구문을 입력했습니다.
  • 쉘은 Unix / DOS 시스템간에 호환 되지 않습니다.
  • 다른 소스 에서 bash 쉘 스크립트를 실행하는 데 문제가 있습니다.

이 기사에서는 코딩의 기본 사항을 알고 있으며 수행중인 작업에 대한 아이디어가 있다고 가정합니다. 초보자 인 경우 실행하려는 언어 / 명령에 대한 심층 자습서를 따르는 것이 가장 좋습니다. 구문이 잘못되었을 수 있습니다.

해결 방법 1 : 구문 및 명령 형식 확인

이 오류 메시지가 발생할 수있는 첫 번째 이유는 코드의 구문이 잘못되었거나 명령의 정확한 형식을 따르지 않기 때문입니다. 각 명령에는 설명서에서 볼 수있는 사전 정의 된 형식이 있습니다. 다른 매개 변수는 필수 인 여러 매개 변수가 선택적입니다.

또한 여분의 공간, 큰 따옴표 사용 및 필수 매개 변수에 대해 추가주의를 기울여야합니다. 누락되거나 잘못 선언 된 경우 코드를 실행할 수 없습니다.

예를 들어 다음 코드 대신

 [mycom7] # ./ctopo.sh um_test1 [(1, 2), (2, 1)] 

다음과 같이 실행해야합니다.

 [mycom7] # ./ctopo.sh um_test1 "[(1, 2), (2, 1)]" 

또한 여러 줄에 걸쳐있는 경우 명령 / 쉘 스크립트를 올바르게 실행하고 있는지 확인하십시오.

매개 변수 유형으로 인해 큰 따옴표가 필요합니다. 여분의 공간이 있으면 코드가 손상되고 오류 메시지가 표시 될 수 있습니다. 실행중인 명령의 공식 문서 를 확인하고 문제가 있는지 확인하십시오.

해결 방법 2 : 셸 스크립트 문제 해결

소스 시스템에서 작동하지만 대상에서 오류를 리턴하는 쉘 스크립트를 사용하는 경우 실행 중에 저장된 변수를 확인하여 스크립트의 문제점을 해결 한 후 문제점의 원인을 확인할 수 있습니다. 쉘은 인쇄 할 수없는 문자를 해석하려고 시도하는 경우와 같이 매우 일반적인 원인입니다.

'vx'매개 변수를 사용하여 쉘을 실행하십시오. 실행중인 명령과 스크립트에 저장되는 값이 표시됩니다. 여기를 통해 문제를 해결하고 진단 할 수 있습니다.

예를 들어, 다음과 같이 'vx'를 포함시킨 후 터미널에서 스크립트를 실행하십시오.

 # sh -vx ./test_script5.sh 

'cat'명령을 사용하여 스크립트의 내용을 확인할 수 있습니다.

 # 고양이 test_script5.sh 

해결 방법 3 : 'dos2unix.exe'명령 사용

Windows / DOS 텍스트 파일에서 새 줄은 캐리지 리턴 (\ r)과 줄 바꿈 (\ n)의 조합입니다. Mac (Mac OS X 이전)에서 줄 바꿈은 간단한 캐리지 리턴 (\ r)을 사용했습니다. Unix / Linux 및 Mac OS X은 줄 바꿈 (\ n) 줄 바꿈을 사용합니다. Cygwin을 사용하는 경우 추가 캐리지 리턴 (\ r) 문자로 인해 DOS / Windows 및 이전 Mac에서 작성한 스크립트를 처리하지 못합니다.

'dos2unix.exe'명령 사용

여기에서 스크립트를 올바른 형식으로 변환하는 'dos2unix.exe'명령을 만든 다음 문제없이 실행할 수 있습니다.

결론적으로, 사용중인 명령 및 플랫폼 유형을 조사하고 불일치가 없는지 확인해야합니다. 우리는 모든 가능성을 다룰 수는 없으므로 어떤 종류의 오류가 발생할 수 있고 어떻게 해결할 수 있는지 생각해야합니다.

재미있는 기사