세 가지 해결 방법이 있습니다. 1. "dos2unix filename" 명령을 사용하여 지정된 파일을 unix 형식으로 직접 변환합니다. 2. sed 명령을 사용하여 끝 문자를 unix 형식으로 직접 바꾸며 구문은 "sed -i"입니다. "s/ r//" 파일 이름" 또는 "sed -i "s/^M//" 파일 이름"; 3. vi를 사용하여 파일을 연 후 "set ff=unix"를 사용하여 파일을 unix로 설정하고 저장하려면 ":wq"를 사용하세요.
이 튜토리얼의 운영 환경: linux7.3 시스템, Dell G3 컴퓨터.
쉘 스크립트를 실행할 때 이러한 오류가 나타나는 주된 이유는 쉘 스크립트 파일이 dos 형식이기 때문입니다. 즉, 각 줄의 끝은 다음과 같습니다. rn으로 식별되며 유닉스 형식 파일의 줄 끝은 n 로고로 끝납니다.
스크립트 파일이 dos 형식인지 unix 형식인지 확인하는 여러 가지 방법이 있습니다.
(1) cat -A filename 표시된 결과를 보면 dos 형식으로 끝나는 파일 줄은 ^M, unix 형식으로 끝나는 파일 줄은 , unix 형식으로 끝나는 파일 줄은 , 그리고 유닉스 형식으로 끝나는 파일 라인은 다음과 같습니다.
(2) od -t x1 파일 이름 출력 내용에 0d 0a 문자가 보이면 파일은 0a만 있는 경우 unix 형식입니다.
(3) vi 파일명으로 파일을 열고 set ff를 실행합니다. 파일이 dos 형식이면 fileformat=dos로 표시됩니다. unxi이면 fileformat=unix로 표시됩니다.
해결책:
(1) Linux 명령 dos2unix filename을 사용하여 파일을 Unix 형식으로 직접 변환합니다.
dos2unix filename
(2) sed 명령 sed -i "s/r//" filename 또는 sed -i 사용 " s/^M//” filename은 끝 문자를 unix 형식으로 직접 대체합니다
sed -i “s/\r//” filename sed -i “s/^M//” filename
(3) vi filename은 파일을 열고 실행: set ff=unix 파일을 unix로 설정한 다음 실행: wq, unix에 저장 format
set ff=unix
추천 학습: Linux 비디오 튜토리얼
위 내용은 Linux에서 sh 스크립트를 실행할 수 없는 경우 수행할 작업의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!