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

我正尝试从这里安装YouCompleteMe。

当我执行时:

./install.sh --clang-completer 

我得到这个错误:

  env: bash\r: No such file or directory 

我不知道什么是错误的环境variables。 这是我的bashpath:

 which bash /bin/bash 

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

错误消息表明你正在调用的脚本已经嵌入了\r字符 ,这反过来表明它具有Windows风格的\r\n行结尾,而不是bash期望的\n单行结尾。

作为一个快速解决方案 ,您可以删除\r字符。 如下:

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

然后运行

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

然而,更大的问题是为什么你最终会遇到\r\n style文件 – 很可能其他文件也受到影响。

也许你正在Windows上运行Git ,一个典型的配置是将Unix风格的\n -only换行符转换为Windows风格的\r\n换行符, 用于检出文件并重新转换为\n – 只换行符在提交

虽然这对于 Windows 上的开发是有意义的 ,但它却阻碍了这样的安装场景

为了让Git在Windows上检查具有Unix风格的文件结尾的文件 – 至少暂时 – 使用:

 git config --global core.autocrlf false 

然后再次运行涉及git clone安装命令。

稍后恢复Git的行为,运行git config --global core.autocrlf true

您的文件具有Windows行结尾。 转到Unix行结尾。

跑到类似的东西。 您可以使用dos2unix install.sh来转换行结束符。 多个文件通过find [pattern] | xargs dos2unix find [pattern] | xargs dos2unix