WSL에서 Bash 스크립트를 실행하는“$ '\ r': command not found”오류를 어떻게 수정합니까?


23

junyanz / pytorch-CycleGAN-and-pix2pix 를 사용하는 동안 WSL에 오류가 발생 합니다.

나는 모든 설치의 단계를 사용하여 성공적으로 윈도우 10의 x64에 단계 다음 스크린 샷 가진의 교육 : 윈도우 10에 PyTORCH GitHub의 바탕 화면에 Windows 용, 다음 우분투 설치 및 Windows 10에 대한 사용 리눅스 배쉬 쉘하는 방법을 .

그러나 나는 최신 단계에서 막혔습니다.

여기서 Windows에서 모델을 다운로드하거나 교육하려고합니다. 예를 들어 Ubuntu Linux 프롬프트를 사용하여 수동으로 적절한 위치로 이동하여 다음과 같은 명령을 입력하십시오 (또한 su 모드에서 시도했습니다)

bash pretrained_models/download_pix2pix_model.sh facades_label2photo

항상 다음과 유사한 즉각적인 오류가 발생합니다.

root@Azure:/mnt/c/Users/vincent/Downloads/vision/pytorch-CycleGAN-and-pix2pix# bash pretrained_models/download_pix2pix_model.sh facades_label2photo
pretrained_models/download_pix2pix_model.sh: line 2: $'\r': command not found
Note: available models are edges2shoes, sat2map, and facades_label2photo
pretrained_models/download_pix2pix_model.sh: line 4: $'\r': command not found
]pecified [facades_label2photo
pretrained_models/download_pix2pix_model.sh: line 6: $'\r': command not found
mkdir: cannot create directory ‘./checkpoints/facades_label2photo\r_pretrained\r’: No such file or directory
pretrained_models/download_pix2pix_model.sh: line 10: $'\r': command not found
WARNING: timestamping does nothing in combination with -O. See the manual
for details.

: No such file or directoryhphoto
pretrained_models/download_pix2pix_model.sh: line 12: $'\r': command not found
pretrained_models/download_pix2pix_model.sh: line 13: $'\r': command not found

어떤 생각?


4
난 당신이 무슨 일을하는지 잘 모른다, 그러나 $'\r': command not found강하게 문제는 당신이 DOS 스타일 CRLF 라인 엔딩으로 파일을 저장 한 윈도우 텍스트 편집기를 사용했다고한다 제안 - 예를 들어 볼 유닉스 라인 엔딩 대 DOS를
steeldriver

그러나 Im은 Window Ubuntu 명령 프롬프트에 직접 명령을 입력합니다. 텍스트 편집기를 전혀
Vincent Thomas

1
@VincentThomas 이것은 텍스트 파일입니다 :pretrained_models/download_pix2pix_model.sh
wjandrea

여기에서 대답을 시도하십시오 : Windows 줄 끝을 Unix 버전으로 변경하는 방법 . 문제가 해결되면 Google에 알려 주시면 귀하의 질문이 중복으로 종결됩니다.
wjandrea

@ wjandrea 나는 이것이 실제로 Windows 줄 끝을 Unix 버전으로 변경하는 방법 의 복제본이라고 생각하지 않습니다 . 여기서 합리적인 해결책 은 WSL 시스템 내에서 실행 git clone하는 것이며 각 파일을 변환하려고 추가 노력을 기울이지 않아야합니다. 목표가 Ubuntu에 소프트웨어를 설치하는 것이라면 먼저 파일 시스템 외부에서 소프트웨어를 다운로드 할 이유가 없습니다.
Eliah Kagan

답변:


23

WSL 내부 :

sudo apt-get install dos2unix

그때,

dos2unix [file]

전체 문서 :

man dos2unix

내 하루를 구했으면 좋겠다.


작동합니다. VSCode를 사용하고 rsync 및 ssh 명령을 실행하는 쉘 스크립트가 있었고이 문제가 발생했습니다. Chaim이 말한 것처럼 wSL에 dos2unix를 설치 wsl dos2unix deploy.sh하고 Powershell에서 한 번 실행 했으며 이제는 입력 할 때마다 wsl ./deploy.sh모든 것이 완벽하게 작동합니다! 고마워
Dan Zuzevich

7

steeldriver가 정확한지 문제는 윈도우의 파일이 있다는 것을 라인 엔딩을 하고 bash이를 실행할 수 없습니다. $'\r'는 전통적인 DOS 및 Windows 줄 끝 (CR LF)의 일부인 캐리지 리턴 문자 (CR)를 나타내지 만 전통적인 Unix 스타일 줄 끝 (LF)에는 없습니다.

에서 말한 것처럼 에서 스크립트 실행을 시도하는 명령을 입력하고 bash있지만 스크립트는 실제로 Ubuntu (WSL) 시스템 외부Windows 다운로드 디렉토리에 저장되어 있습니다.

/mnt/c/Users/vincent/Downloads/vision/pytorch-CycleGAN-and-pix2pix

로 시작하는 WSL 경로 ( /mnt/c여기서는 cWindows 드라이브 문자 일 수 있음) 는 Ubuntu 시스템 외부 의 파일 및 디렉토리에 액세스하는 경로입니다 . Windows 경로는 다음과 같습니다.

C:\Users\vincent\Downloads\vision\pytorch-CycleGAN-and-pix2pix

파일이 Ubuntu가 설치된 영역 외부 의 Windows 시스템에 저장 되었다고해서 Unix 스타일의 줄 끝 대신 Windows 스타일을 사용한다는 보장은 없습니다. 그러나 Windows 에서 Git 을 사용 하여 파일을 다운로드 한 경우 기본 구성은 Windows 스타일 줄 끝을 제공하는 것입니다.

문제를 해결하는 가장 쉬운 방법은 당신이 필요로하는 파일을 다운로드 정말 안에 당신의 우분투 시스템 bash프롬프트를. Ubuntu 시스템을 완전히 업데이트 한 다음 git Ubuntu에 설치 하고 build-essential소스 코드에서 대부분의 소프트웨어를 컴파일하는 데 유용한 도구를 제공하는 것이 좋습니다. 파이썬 프로그램의 경우 필요하지 않을 수도 있습니다 build-essential. 원하는 경우 생략 할 수 있지만 어느 시점에서 필요할 것으로 예상됩니다.

sudo apt update && sudo apt upgrade && sudo apt install git build-essential

그런 다음 cd명령을 사용 하여 소프트웨어를 다운로드하려는 디렉토리로 이동하십시오. 이것은 우분투 시스템 내의 디렉토리 여야합니다. 예를 들어, Ubuntu 홈 디렉토리이거나 그 안에있을 수 있습니다. 일단 GitHub에서 저장소를 복제하십시오. 나는 src내 홈 디렉토리 안에 만든 디렉토리 안에서 그것을했다 .

cd ~/src
git clone https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix.git

물론, 의존성을 먼저 설치해야 할 것입니다. 그렇게 하려면 모든 공식 지침을 따르십시오 . 우분투 시스템 에서 모든 단계를 수행하십시오 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.