env:bash \ r \ n:没有这样的文件或目录

时间:2015-03-14 03:33:11

标签: windows git bash line-endings core.autocrlf

我正在尝试从here安装YouCompleteMe。

执行时:

    ./install.sh --clang-completer

我收到此错误:

    env: bash\r: No such file or directory

我不知道环境变量有什么问题。这是我的bash路径:

which bash 
/bin/bash

我需要将其更改为/ usr / bash吗?如果是,那我该怎么做?我尝试更改〜/ .bashrc文件,但它没有用。

11 个答案:

答案 0 :(得分:77)

错误消息表明您正在调用的脚本嵌入了\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风格{{1 检出文件并重新转换为\r\n的换行符 - 提交 时只有换行符。

虽然对Windows上的开发 有意义,但阻碍了安装方案这样的方式

让Git在Windows上签出带有Unix风格文件结尾的文件 - 至少暂时 - 使用:

\n

然后再次运行涉及git config --global core.autocrlf false 的安装命令。

要稍后恢复Git的行为,请运行git clone

答案 1 :(得分:10)

您的文件有Windows行结尾。更改为Unix行结尾。

答案 2 :(得分:8)

>vim gradlew
:set fileformat=unix
:wq
>./gradlew clean build

答案 3 :(得分:7)

变成类似的东西。您可以使用dos2unix install.sh转换行结尾。通过find [pattern] | xargs dos2unix

的多个文件

答案 4 :(得分:5)

就我而言,我的git配置错误。 git文档指出:

如果您在Windows上进行编程并且与非 (反之亦然),您可能会在某些情况下遇到行尾问题 点

我正在使用Mac OS,而我的一个项目中确实有这个问题。为了解决这个问题,我将autocrlf更改为true,这是错误的。

您可以像这样检查git配置的autocrlf状态:

git config core.autocrlf

因此,如果返回true并且问题在git存储库中发生,则必须将该配置更改为

git config --global core.autocrlf input
在Mac / Unix系统上

。对于仅Windows项目,您可以使用

git config --global core.autocrlf false

在我的情况下,我删除了git存储库并再次克隆了它,然后一切又按预期工作了。

进一步了解https://www.git-scm.com/book/en/v2/Customizing-Git-Git-Configuration

答案 5 :(得分:5)

正如上面的评论所说,它是由于Windows行尾而发生的。要解决此问题,请按照以下步骤操作

对于MAC:

brew install dos2unix # Installs dos2unix Mac
find . -type f -exec dos2unix {} \; # recursively removes windows related stuff

对于Linux:

sudo apt-get install -y dos2unix # Installs dos2unix Linux
sudo find . -type f -exec dos2unix {} \; # recursively removes windows related stuff

并确保您的git配置设置如下:

git config --global core.autocrlf input

答案 6 :(得分:4)

用于转换行尾的快速命令:

dos2unix thescript.sh

答案 7 :(得分:2)

就我而言,我的git配置错误。 git文档指出:

如果您在Windows上进行编程并且与非 (反之亦然),您可能会在某些情况下遇到行尾问题 点

我正在使用Mac OS,而我的一个项目中确实有这个问题。为了解决这个问题,我将autocrlf调整为true

您可以像这样检查git配置的autocrlf状态:

git config core.autocrlf

因此,如果返回true并且问题在git存储库中发生,则必须将该配置更改为

git config --global core.autocrlf input

这对于Mac / Unix系统是正确的。对于仅Windows项目,您可以使用

git config --global core.autocrlf false

就我而言,我删除了git存储库,然后再次将其检出,然后一切都按预期工作。

进一步了解https://www.git-scm.com/book/en/v2/Customizing-Git-Git-Configuration

答案 8 :(得分:0)

就我而言: 当我下载WINDOWS版本并将其解压缩到MAC时出现此错误

然后将 windows 版本路径添加到 .bash_profile 或 .zprofile

所以我的解决方案是从(.bash_profile 和 .zprofile)中删除路径 然后打开终端下载mac版,输入:

  1. mkdir src
  2. cd src
  3. git clone https://github.com/flutter/flutter.git -b stable
  4. 导出 PATH="$PATH:pwd/flutter/bin"
  5. 颤动医生

答案 9 :(得分:0)

我曾经在尝试降级 flutter 时遇到过这个问题

这解决了我的问题

rm -rf flutter
git config --global core.autocrlf false
git clone git@github.com:flutter/flutter.git
flutter channel stable

答案 10 :(得分:-1)

此链接帮助我解决了问题。 https://github.com/tiangolo/uwsgi-nginx-flask-docker/issues/127

我编辑了.sh文件,将所有CRLF替换为LF