WSLでBashスクリプトを実行している「$ '\ r':コマンドが見つかりません」エラーを修正するにはどうすればよいですか?


23

junyanz / pytorch-CycleGAN-and-pix2pixを使用しようとすると、WSLでエラーが発生します。

私はすべての手順使用して、Windows 10のx64で正常に手順をインストールし、その後、スクリーンショットと教育:Windowsの10でPyTORCHを GitHubのデスクトップで、その後、Windows用のUbuntu のWindows 10上でのLinuxのBashシェルをインストールして使用する方法

しかし、私は最新の手順でブロックされています。

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ラインエンディングでファイルを保存したWindowsテキストエディタを使用していることを強くお勧めします-例えばDOS対Unixラインエンディング
steeldriver

しかし、Windows Ubuntuコマンドプロンプトで直接コマンドを入力するだけです。...すべてで任意のテキストエディタで渡していない
ヴィンセントトーマス

1
@VincentThomasこれはテキストファイルですpretrained_models/download_pix2pix_model.sh
。– wjandrea

こちらの回答をお試しください:Windowsの行末をUnixバージョンに変更する方法。問題が解決した場合はお知らせください。重複して問題を解決します。
-wjandrea

@wjandreaこれは、Windowsの行末をUnixバージョンに変更する方法の実際の複製とは思わない。ここでの合理的な解決策は、WSLシステム内で実行することでgit cloneあり、各ファイルを変換するために余分な労力をかけることではありません。Ubuntuにソフトウェアをインストールすることが目標である場合、最初にファイルシステムの外部でダウンロードする理由はありません。
エリアケイガン

回答:


23

内部WSL:

sudo apt-get install dos2unix

次に、

dos2unix [file]

完全なドキュメント:

man dos2unix

私の一日を救った、それが役立つことを願っています。


これは動作します。VSCodeを使用していて、rsyncコマンドとsshコマンドを実行するシェルスクリプトがあり、この問題に遭遇しました。Chaimが言ったようにWSLにdos2unixをインストールし、Powershell wsl dos2unix deploy.shから1回実行しました。今では、入力するたびにwsl ./deploy.shすべてが完全に機能します。どうもありがとう。
ダンズゼビッチ

7

steeldriverは正しい問題は、Windowsの付いたファイルがあることであることを行末をし、bashそれらを実行することはできません。$'\r'は、従来のDOSおよびWindowsの行末(CR LF)の一部ですが、従来のUnixスタイルの行末(LF)にはないキャリッジリターン文字(CR)の表現です。

あなたが言うように、コマンドを入力してでスクリプトを実行しようとします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

Ubuntu システムがインストールされている領域のWindowsシステムにファイルが保存されていても、Unixスタイルの行末ではなくWindowsスタイルを使用することは保証されません。ただし、WindowsでGit 使用してファイルをダウンロードした場合、そのデフォルト構成では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.