수정 : 예기치 않은 토큰`(& lsquo;

예상치 못한 토큰`( '근처 의 오류 메시지 구문 오류 는 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'명령을 만들어 문제없이 실행할 수 있습니다.

결론을 내리려면 사용중인 명령과 플랫폼 유형을 조사하고 불일치가 없는지 확인해야합니다. 우리가 모든 가능성을 다룰 수는 없기 때문에 어떤 종류의 오류가 발생할 수 있으며 어떻게 해결할 수 있는지 알 수 있습니다.