ฉันจะแก้ไขข้อผิดพลาด“ $ '\ r': ไม่พบคำสั่ง” ที่รันสคริปต์ Bash ใน WSL ได้อย่างไร


23

ฉันได้รับข้อผิดพลาดใน WSL ในขณะที่พยายามที่จะใช้junyanz / pytorch-CycleGAN และ pix2pix

ผมทำตามทุกขั้นตอนการติดตั้งที่ประสบความสำเร็จบน Windows 10 x 64 โดยใช้ขั้นตอนที่PyTORCH บน Windows 10: การเรียนการสอนกับหน้าจอแล้ว Ubuntu สำหรับ Windows ด้วยเดสก์ทอป GitHub วิธีการติดตั้งและการใช้ลินุกซ์ทุบตีเชลล์บน 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ขอแนะนำอย่างยิ่งปัญหาคือคุณใช้โปรแกรมแก้ไขข้อความ Windows ที่บันทึกไฟล์ของคุณด้วยการสิ้นสุดบรรทัด CRLF สไตล์ DOS - ดูตัวอย่างDOS vs. Unix Line Endings
steeldriver

แต่ฉันแค่พิมพ์คำสั่งโดยตรงในหน้าต่างพรอมต์คำสั่งของ Ubuntu ไม่ผ่านโปรแกรมแก้ไขข้อความใด ๆ เลย ...
Vincent Thomas

1
@VincentThomas นี่คือไฟล์ข้อความ:pretrained_models/download_pix2pix_model.sh
wjandrea

ลองคำตอบที่นี่: วิธีการเปลี่ยนของ Windows บรรทัดจบรุ่นที่ใช้ระบบปฏิบัติการยูนิกซ์ หากใช้งานได้โปรดแจ้งให้เราทราบและเราจะปิดคำถามของคุณซ้ำซ้อน
wjandrea

@wjandrea ฉันไม่คิดว่านี้เป็นจริงที่ซ้ำกันของวิธีการเปลี่ยนของ Windows บรรทัดจบรุ่นที่ใช้ระบบปฏิบัติการยูนิกซ์ ทางออกที่สมเหตุสมผลในที่นี้คือการเรียกใช้git cloneภายในระบบ WSLและไม่ต้องใช้ความพยายามพิเศษในการแปลงไฟล์แต่ละไฟล์ หากเป้าหมายคือการติดตั้งซอฟต์แวร์ใน Ubuntu ไม่มีเหตุผลที่จะต้องดาวน์โหลดมันนอกระบบไฟล์ก่อน
Eliah Kagan

คำตอบ:


23

ภายใน WSL:

sudo apt-get install dos2unix

จากนั้น

dos2unix [file]

เอกสารฉบับเต็ม:

man dos2unix

บันทึกวันของฉันหวังว่ามันจะช่วย


วิธีนี้ใช้ได้ผล ฉันใช้ VSCode และมีเชลล์สคริปต์ที่รันคำสั่ง rsync และ ssh บางส่วนและพบปัญหานี้ ฉันติดตั้ง dos2unix ใน WSL อย่าง Chaim พูดและดำเนินการครั้งเดียวwsl dos2unix deploy.shจาก Powershell และตอนนี้ทุกครั้งที่ฉันพิมพ์wsl ./deploy.shทุกอย่างทำงานได้อย่างสมบูรณ์! ขอบคุณมาก.
Dan Zuzevich

7

steeldriver นั้นถูกต้องว่าปัญหาคือคุณมีไฟล์ที่มีจุดสิ้นสุดของบรรทัด Windows และbashไม่สามารถรันได้ $'\r'เป็นตัวแทนของอักขระ carriage return (CR) ซึ่งเป็นส่วนหนึ่งของ DOS และ Windows line endings (CR LF) แต่ไม่มีอยู่ใน Unix-style line endings (LF)

อย่างที่คุณพูดคุณกำลังพิมพ์คำสั่งเพื่อพยายามเรียกใช้สคริปต์bashแต่โปรดสังเกตว่าสคริปต์นั้นถูกจัดเก็บอยู่นอกระบบ Ubuntu (WSL) ของคุณในไดเรกทอรีดาวน์โหลดWindowsของคุณ:

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

เส้นทาง WSL ที่เริ่มต้นด้วย/mnt/cซึ่งcอาจเป็นตัวอักษรไดรฟ์ Windows เป็นเส้นทางที่เข้าถึงไฟล์และไดเรกทอรีนอกระบบ Ubuntu ในฐานะที่เป็นเส้นทางของ Windows นั่นคือ:

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

การที่ไฟล์ถูกเก็บไว้ในระบบ Windows ของคุณนอกพื้นที่ที่ติดตั้ง Ubuntu ไม่รับประกันว่าจะใช้รูปแบบ Windows แทนการสิ้นสุดบรรทัดแบบ Unix อย่างไรก็ตามหากคุณดาวน์โหลดไฟล์ด้วย Git ใน Windowsการกำหนดค่าเริ่มต้นของมันคือให้การสิ้นสุดบรรทัดสไตล์ Windows แก่คุณ

วิธีที่ง่ายที่สุดในการแก้ไขปัญหาคือการดาวน์โหลดไฟล์ที่คุณต้องการในระบบ Ubuntu จากbashพรอมต์ของคุณ ฉันขอแนะนำให้คุณอัปเดตระบบ Ubuntu อย่างสมบูรณ์จากนั้นติดตั้งgit ใน Ubuntu รวมถึงbuild-essentialเครื่องมือที่มีประโยชน์ที่คุณต้องรวบรวมซอฟต์แวร์ส่วนใหญ่จากซอร์สโค้ด สำหรับโปรแกรม Python, คุณอาจไม่จำเป็นbuild-essential; คุณสามารถละเว้นได้หากคุณต้องการ แต่ฉันสงสัยว่าคุณจะต้องใช้มันในบางจุด

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

จากนั้นใช้cdคำสั่งเพื่อไปยังไดเรกทอรีที่คุณต้องการดาวน์โหลดซอฟต์แวร์ นี่ควรเป็นไดเรกทอรีภายในระบบ Ubuntu ของคุณ ตัวอย่างเช่นอาจเป็นไดเรกทอรีบ้านของ Ubuntu หรือที่อื่น ๆ โคลนที่เก็บจาก GitHub ฉันทำมันภายในsrcไดเรกทอรีที่ฉันทำไว้ในไดเรกทอรีภายในบ้านของฉัน

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

แน่นอนที่สุดคุณจะต้องติดตั้งการพึ่งพาก่อน หากต้องการทำเช่นนั้นเพียงทำตามคำแนะนำอย่างเป็นทางการทั้งหมดทั้งหมด ทำตามขั้นตอนเหล่านั้นทั้งหมดในระบบ Ubuntu

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.