Làm cách nào để sửa lỗi $ $ \ \ r ': lệnh không tìm thấy lỗi Lỗi khi chạy tập lệnh Bash trong WSL?


23

Tôi đang gặp lỗi trong WSL khi cố gắng sử dụng Junyanz / pytorch-CycleGAN-và-pix2pix .

Tôi đã làm theo tất cả các bước cài đặt thành công trên Windows 10 x64 bằng các bước tại PyTORCH trên Windows 10: Hướng dẫn với ảnh chụp màn hình , sau đó Ubuntu cho Windows với máy tính để bàn GitHub Cách cài đặt và sử dụng Linux Bash Shell trên Windows 10 .

Nhưng tôi bị chặn ở những bước mới nhất.

Đó là nơi tôi cố tải xuống hoặc huấn luyện mô hình trong Windows. Ví dụ, sử dụng dấu nhắc Ubuntu Linux, tôi điều hướng thủ công đến vị trí thích hợp và nhập lệnh sau như lệnh bên dưới (Tôi cũng đã thử trong chế độ su)

bash pretrained_models/download_pix2pix_model.sh facades_label2photo

Tôi nhận được một lỗi ngay lập tức, luôn luôn như vậy, tương tự như sau:

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

Bất kỳ ý tưởng?


4
Tôi không biết bạn đang làm gì, nhưng $'\r': command not foundrất gợi ý vấn đề là bạn đã sử dụng trình soạn thảo văn bản Windows đã lưu các tệp của bạn với các kết thúc dòng CRLF theo phong cách DOS - xem ví dụ DOS so với Unix Line Endings
Steeller

Nhưng tôi chỉ cần gõ lệnh trực tiếp trong dấu nhắc lệnh Window Ubuntu. Không vượt qua bất kỳ trình soạn thảo văn bản nào cả ...
Vincent Thomas

1
@VincentThomas Đây là một tệp văn bản:pretrained_models/download_pix2pix_model.sh
wjandrea

Hãy thử câu trả lời ở đây: Cách thay đổi dòng kết thúc Windows thành phiên bản Unix . Nếu nó hoạt động, hãy cho chúng tôi biết và chúng tôi sẽ đóng câu hỏi của bạn dưới dạng trùng lặp.
wjandrea

@wjandrea Tôi không nghĩ đây thực sự là một bản sao của Cách thay đổi dòng kết thúc Windows thành phiên bản Unix . Giải pháp hợp lý ở đây là chạy git clonetrong hệ thống WSL và không thực hiện thêm nỗ lực chuyển đổi từng tệp. Nếu mục tiêu là cài đặt phần mềm trong Ubuntu, không có lý do gì để tải xuống bên ngoài hệ thống tập tin của nó trước tiên.
Eliah Kagan

Câu trả lời:


23

Bên trong WSL:

sudo apt-get install dos2unix

Sau đó,

dos2unix [file]

Tài liệu đầy đủ:

man dos2unix

Cứu ngày của tôi, hy vọng nó sẽ giúp.


Những công việc này. Tôi đã sử dụng VSCode và có một kịch bản shell thực thi một số lệnh rsync và ssh, và gặp vấn đề này. Tôi đã cài đặt dos2unix bên trong WSL như Chaim đã nói và thực hiện một lần, wsl dos2unix deploy.shtừ Powershell, và bây giờ, mỗi khi tôi gõ, wsl ./deploy.shmọi thứ đều hoạt động hoàn hảo! Cảm ơn rất nhiều.
Dan Zuzevich

7

Steeldo đúng là vấn đề là bạn có các tệp có kết thúc dòng Windows và bashkhông thể chạy chúng. $'\r'là một đại diện của ký tự hoàn trả vận chuyển (CR) là một phần của các kết thúc dòng truyền thống của DOS và Windows (CR LF), nhưng không có trong các kết thúc dòng kiểu Unix truyền thống (LF).

Như bạn nói , bạn đang gõ lệnh để cố chạy tập lệnh bash, nhưng lưu ý rằng tập lệnh thực sự được lưu trữ bên ngoài hệ thống Ubuntu (WSL) của bạn, trong thư mục tải xuống Windows của bạn :

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

Các đường dẫn WSL bắt đầu bằng /mnt/c, trong đó ccó thể là bất kỳ ký tự ổ đĩa Windows nào, là các đường dẫn truy cập các tệp và thư mục bên ngoài hệ thống Ubuntu. Như một đường dẫn Windows, đó là:

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

Rằng một tệp được lưu trữ trong hệ thống Windows của bạn bên ngoài khu vực cài đặt Ubuntu không đảm bảo rằng nó sử dụng kiểu Windows thay vì kết thúc dòng kiểu Unix. Tuy nhiên, nếu bạn đã tải xuống các tệp có Git trong Windows , cấu hình mặc định của nó là cung cấp cho bạn các kết thúc dòng kiểu Windows.

Cách dễ nhất để khắc phục sự cố là thực sự chỉ cần tải xuống các tệp bạn cần trong hệ thống Ubuntu từ bashlời nhắc của bạn . Tôi khuyên bạn nên cập nhật đầy đủ hệ thống Ubuntu, sau đó cài đặt git trong Ubuntu, cũng như build-essentialcung cấp các công cụ hữu ích mà bạn cần để biên dịch hầu hết phần mềm từ mã nguồn. Đối với các chương trình Python, bạn có thể không cần build-essential; bạn có thể bỏ qua nó nếu bạn thích, nhưng tôi nghi ngờ cuối cùng bạn sẽ cần nó.

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

Sau đó sử dụng cdlệnh để đi đến một thư mục mà bạn muốn tải xuống phần mềm. Đây phải là một thư mục trong hệ thống Ubuntu của bạn. Ví dụ, nó có thể là thư mục chính Ubuntu của bạn hoặc ở đâu đó bên trong đó. Khi đó, sao chép kho lưu trữ từ GitHub. Tôi đã làm nó trong srcthư mục mà tôi đã thực hiện trong thư mục nhà của tôi.

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

Tất nhiên, rất có thể bạn sẽ phải cài đặt các phụ thuộc đầu tiên. Để làm điều đó, chỉ cần làm theo tất cả các hướng dẫn chính thức . Thực hiện tất cả các bước trong hệ thống Ubuntu.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.