./network.sh: bad interpreter: /bin/bash^M: no such file or directory
이 오류는 일반적으로 Windows 시스템에서 파일을 편집하거나 생성한 후 Linux 시스템(예: WSL)에서 실행할 때 발생합니다. 문제의 원인은 줄 끝 문자(line ending) 차이 때문입니다. Windows는 CRLF(Carriage Return + Line Feed, \r\n)를 사용하고, Linux는 LF(Line Feed, \n)만 사용합니다.
이 문제를 해결하기 위해 다음 단계를 따라해 보세요:
dos2unix 유틸리티 설치:
sudo apt-get update
sudo apt-get install dos2unix
network.sh 파일의 줄 끝 문자 변환:
dos2unix network.sh
파일 실행 권한 확인 및 부여:
chmod +x network.sh
다시 스크립트 실행:
./network.sh up
만약 dos2unix를 사용할 수 없는 경우, 다음의 sed 명령어를 사용할 수 있습니다:
sed -i 's/\r$//' network.sh
이 명령어는 파일에서 모든 캐리지 리턴(\r) 문자를 제거합니다.
또는 Vi나 Vim 편집기를 사용중이라면, 다음 명령으로 파일 형식을 변경할 수 있습니다:
Vi나 Vim으로 파일 열기:
vi network.sh
명령 모드에서 다음 명령 실행:
:set fileformat=unix
:wq
이 과정을 거친 후에는 스크립트가 정상적으로 실행될 것입니다. 여전히 문제가 발생한다면 알려주세요.