env: bash\r: No such file or directory

2019-01-11 02:43发布

I'm trying to install YouCompleteMe from here.

When I execute:

    ./install.sh --clang-completer

I get this error:

    env: bash\r: No such file or directory

I don't know whats wrong with environment variables. Here's my bash path:

which bash 
/bin/bash

Do I need to change it to /usr/bash? If yes, then how should I do that? I tried changing ~/.bashrc file, but it didn't work.

4条回答
SAY GOODBYE
2楼-- · 2019-01-11 03:11

The error message suggests that the script you're invoking has embedded \r characters, which in turn suggests that it has Windows-style \r\n line endings instead of the \n-only line endings bash expects.

As a quick fix, you can remove the \r chars. as follows:

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

and then run

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

However, the larger question is why you've ended up with \r\n-style files - most likely, other files are affected, too.

Perhaps you're running Git on Windows, where a typical configuration is to convert Unix-style \n-only line breaks to Windows-style \r\n line breaks on checking files out and re-converting to \n-only line breaks on committing.

While this makes sense for development on Windows, it gets in the way of installation scenarios like these.

To make Git check out files with Unix-style file endings on Windows - at least temporarily - use:

git config --global core.autocrlf false

Then run your installation commands involving git clone again.

To restore Git's behavior later, run git config --global core.autocrlf true.

查看更多
做自己的国王
3楼-- · 2019-01-11 03:15

Ran into something similar. You can use dos2unix install.sh to convert the line endings. Multiple files via find [pattern] | xargs dos2unix

查看更多
放我归山
4楼-- · 2019-01-11 03:18
>vim gradlew
:set fileformat=unix
:wq
>./gradlew clean build
查看更多
仙女界的扛把子
5楼-- · 2019-01-11 03:30

Your file has Windows line endings. Change to Unix line endings.

查看更多
登录 后发表回答