web-dev-qa-db-ja.com

env:bash \ r:そのようなファイルまたはディレクトリはありません

here からYouCompleteMeをインストールしようとしています。

私が実行するとき:

    ./install.sh --clang-completer

私はこのエラーを受け取ります:

    env: bash\r: No such file or directory

環境変数の何が問題なのかわかりません。これが私のbashパスです:

which bash 
/bin/bash

/ usr/bashに変更する必要がありますか?はいの場合、どのようにすればよいですか? 〜/ .bashrcファイルを変更しようとしましたが、うまくいきませんでした。

51

エラーメッセージは、呼び出しているスクリプトに\r文字が埋め込まれているを示唆しています。これは、Windowsスタイル\r\n行末を示唆しています= \nのみの行末bashの代わりに。

簡易修正として、\r文字を削除できます。次のように:

 sed $'s/\r$//' ./install.sh > ./install.Unix.sh

そして、実行します

./install.Unix.sh --clang-completer

ただし、大きな問題は、なぜ\r\nスタイルのファイルになったのかということです。おそらく、他のファイルも影響を受けます。

おそらくWindowsでのGitを実行している場合、通常の構成はUnixスタイル\n-のみの改行をWindowsスタイル\r\nの改行に変換することですonファイルのチェックアウトおよび\n-のみの改行への再変換oncommitting.

これはWindowsではdevelopmentに意味がありますが、installationシナリオこれらのように。

To WindowsでGitにUnixスタイルのファイル拡張子を持つファイルをチェックアウトさせる-少なくとも一時的に-使用:

git config --global core.autocrlf false

次に、git cloneを含むインストールコマンドを再度実行します。

Gitの動作を後で復元するには、git config --global core.autocrlf trueを実行します。

91
mklement0

ファイルにはWindowsの行末があります。 Unixの行末に変更します。

11
Carl Norum

似たようなものに走りました。 dos2unix install.shを使用して、行末を変換できます。 find [pattern] | xargs dos2unixを介した複数のファイル

9
Michael Harris
>vim gradlew
:set fileformat=unix
:wq
>./gradlew clean build
9
Tuan Nguyen