>  기사  >  백엔드 개발  >  쉘 스크립트 실행 시 '해당 파일이나 디렉터리가 없습니다'라는 문제에 대한 해결 방법

쉘 스크립트 실행 시 '해당 파일이나 디렉터리가 없습니다'라는 문제에 대한 해결 방법

高洛峰
高洛峰원래의
2017-01-09 13:42:524192검색

잘못된 인터프리터가 나타나는 이유:해당 파일이나 디렉토리가 나타나지 않는 이유는 파일 형식 문제입니다. 이 파일은 Windows에서 작성되었습니다. 뉴라인 방식은 유닉스와 다르지만 vim에서 설정하지 않으면 전혀 보이지 않는다.

문제 분석:
1. Windows에서 작성된 SHELL 파일을 Linux로 전송하여 실행하면 오류 메시지가 나타납니다.
2. 오류 메시지: 잘못된 해석기: 해당 파일이나 디렉터리가 없습니다.

문제 원인:
운영 체제가 Windows이고 스크립트를 Windows에서 편집하기 때문에 보이지 않는 문자가 있을 수 있습니다. 스크립트 파일은 DOS 형식
입니다. 즉, 각 줄의 끝은 rn으로 식별되고 해당 ASCII 코드는 0x0D, 0x0A입니다.

해결 방법:
보는 방법은 다양합니다. DOS 형식, UNIX 형식 또는 MAC 형식
(1) vim filename
명령을 사용하여 dos 또는 unix라는 단어를 확인합니다. Set ff=unix를 사용하면 Unix 형식이 되도록 강제한 다음 저장하고 종료하여 실행됩니다.
1. unix2dos 또는 dos2unix 두 개의 작은 프로그램을 사용하여 서로 다른 플랫폼에서 텍스트 파일 형식을 변환할 수 있습니다. djgpp에서 이 두 프로그램의 이름은 u를 나타냅니다. unix, d는 dos를 나타냅니다
2. sed와 같은 도구를 사용하여 이를 수행할 수도 있습니다:

특별 참고 사항: ^M은 Shift + 6을 눌러 생성되는 ^ 및 문자 M이 아닙니다. 는 문자이고 ASCII는 0x0D입니다. 이를 생성하는 방법은 먼저 CTRL+V를 누른 다음 Enter(또는 CTRL+M)를 누르는 것입니다
sed ‘s/^M//' filename > tmp_filename
mv -f tmp_filename filename

또한 SHELL 프로그램에서 명령을 찾을 수 없다고 보고하는 경우 항상 PATH를 확인하십시오. 프로그램에서 사용하는 모든 명령(절대 경로를 지정하지 않는 종류)이 있습니까? 그렇게 작은 프로그램에서는 한 줄씩 확인할 수 있습니다.
첨부파일 : 하나 적게 써서 발생한 파일이나 디렉토리 문제는 없습니다 /


오늘 예전에 작성했던 간단한 쉘 스크립트를 보다가 문제를 발견했습니다 :

실행 시 ./가 항상 메시지를 표시하는 경우: (bash: ./hello.sh: bin/bash: 잘못된 해석기: 해당 파일이나 디렉터리 없음), sh로 실행할 때는 올바르게 작동합니다. :

(한 눈에 틀린 부분을 찾아보세요)

여러번 확인해보니 제가 쓴 글에서 뭔가 빠진 것을 발견했습니다.

첫 번째 줄을 넣어야 합니다. #!/bin/bash로 줄을 변경하고 하나 줄입니다. /
   #!bin/bash
   echo "Hello Linux!"

아아, 아주 간단한 질문인데, 쉘 스크립트에서는 이런 오류를 발견한 적이 없습니다! 정말 사용하기 쉽지만 유일한 어려움은 형식입니다. 요구 사항이 너무 높습니다!

쉘 스크립트에서 실행할 때 "해당 파일이나 디렉터리가 없습니다"라는 문제에 대한 더 많은 해결 방법을 보려면 주의하세요. 관련 기사를 보려면 PHP 중국어 웹사이트를 방문하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.