如何修复“$’\ r’:命令未找到”在WSL中运行Bash脚本的错误?

我在尝试使用junyanz / pytorch-CycleGAN-and-pix2pix时遇到 WSL错误。

我使用Windows 10上的PyTORCH中的步骤在Windows 10 x64上成功完成了所有安装步骤:带有屏幕截图的说明 ,然后是带有GitHub桌面的Ubuntu for Windows 如何在Windows 10上安装和使用Linux Bash Shell 。

但我在最新的步骤被阻止了。

这是我尝试在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 

任何的想法?

steeldriver是正确的 ,问题是你有Windows 行结尾的文件,而bash无法运行它们。 $'\r'是回车符(CR)的表示,它是传统DOS和Windows行结尾(CR LF)的一部分,但在传统的Unix样式行结尾(LF)中不存在。

正如您所说 ,您正在键入命令以尝试在bash运行脚本,但请注意该脚本实际存储在您的Windows下载目录中的Ubuntu(WSL)系统之外

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

/mnt/c开头的WSL路径,其中c可以是任何Windows驱动器号,是访问Ubuntu系统外部的文件和目录的路径。 作为Windows路径,即:

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

文件存储在安装了Ubuntu的区域之外的Windows系统中并不能保证它使用Windows风格而不是Unix风格的行结尾。 但是,如果您在Windows中使用Git下载文件,则其默认配置是为您提供Windows样式的行结尾。

解决问题的最简单方法是从bash提示符下载Ubuntu系统中需要的文件。 我建议你完全更新Ubuntu系统,然后在Ubuntu中安装git ,以及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系统中执行所有这些步骤。

在WSL里面:

sudo apt-get install dos2unix

然后,

dos2unix [file]

完整文档:

man dos2unix

救了我的一天,希望它有所帮助。