쉘 스크립트를 찾을 수 없습니다 [닫기]

쉘 스크립트를 찾을 수 없습니다 [닫기]

Ubuntu에서 쉘 스크립트를 사용하는 데 문제가 있습니다.

내 스크립트:

#!/bin/bash
/usr/local/bin/node ./index.js
exec bash

실행 파일로 설정했습니다.

sudo chmod +x ./index.sh

그런 다음 실행하십시오.

sudo ./index.sh

하지만 다음을 얻으세요:

sudo: unable to execute ./index.sh: No such file or directory

그러나 파일은 다음과 같습니다.

$ ls -la 
-rwxr-xr-x   1 root root    54 oct.   4 10:05 index.sh

답변1

이 스크립트는 Windows 컴퓨터에서 편집되었습니다. Windows의 편집자는 일반적으로 DOS 줄 끝을 사용합니다. \rUnix 라인 종결자와 비교하여 추가 캐리지 리턴( )이 있습니다. 이는 스크립트를 실행하라는 요청을 받을 때 sudo커널을 혼란스럽게 합니다 .

스크립트를 수정하려면 dos2unix스크립트를 실행하세요.

또는 \r스크립트의 모든 내용을 제거하십시오.

$ tr -d '\r' <index.sh >index.sh-new
$ # test index.sh-new to make sure it works
$ mv index.sh-new index.sh

어떤 방식으로든 리터럴 캐리지 리턴 처리에 의존한다면 스크립트가 분명히 중단될 것입니다.

관련 정보