我正在尝试从此处安装YouCompleteMe 。
当我执行时:
./install.sh --clang-completer
我收到此错误:
env: bash\r: No such file or directory
我不知道环境变量有什么问题。这是我的bash路径:
which bash
/bin/bash
我需要将其更改为/usr/bash吗?如果是,那我该怎么办?我尝试更改~/.bashrc文件,但是没有用。
我正在尝试从此处安装YouCompleteMe 。
当我执行时:
./install.sh --clang-completer
我收到此错误:
env: bash\r: No such file or directory
我不知道环境变量有什么问题。这是我的bash路径:
which bash
/bin/bash
我需要将其更改为/usr/bash吗?如果是,那我该怎么办?我尝试更改~/.bashrc文件,但是没有用。
Answers:
该错误消息表明您正在调用的脚本具有嵌入的\r字符,这反过来又表明它具有Windows样式的\r\n行尾,而不是预期的\n-only行尾bash。
作为快速解决方案,您可以删除\r字符。如下:
sed $'s/\r$//' ./install.sh > ./install.Unix.sh
注:该$'...'字符串是ANSI-C引号字符串支持bash,ksh和zsh。它用于确保\r在sed看到脚本之前将其扩展为实际的CR字符,因为并非所有sed实现本身都支持将其\r作为转义序列。
然后运行
./install.Unix.sh --clang-completer
但是,更大的问题是为什么您最终使用\r\n-style文件-其他文件也很可能受到影响。
也许您正在Windows上运行Git,其中的典型配置是在检出文件时将Unix风格的\n换行符转换为Windows风格的\r\n换行符,并在提交时将其转换为仅换行符\n。
尽管这对于在Windows上进行开发很有意义,但它会妨碍此类安装方案。
为了让Git的检查与Unix风格的文件结尾的文件在Windows上-至少暂时-使用:
git config --global core.autocrlf false
然后git clone再次运行涉及您的安装命令。
要稍后恢复Git的行为,请运行git config --global core.autocrlf true。
正如上面的评论所说,这是由于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
就我而言,我的git配置错误。git文档指出:
如果您在Windows上进行编程并且与非Windows的人一起工作(反之亦然),则有时可能会遇到行尾问题
我正在使用Mac OS,而我的一个项目中确实有这个问题。为了解决它,我转身autocrlf到true这是错误的。
您可以autocrlf像这样检查git配置的状态:
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上找到更多信息
就我而言,我的git配置错误。git文档指出:
如果您在Windows上进行编程并且与非Windows的人一起工作(反之亦然),则有时可能会遇到行尾问题
我正在使用Mac OS,而我的一个项目中确实有这个问题。为了解决这个问题我调autocrlf来true。
您可以autocrlf像这样检查git配置的状态:
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上找到更多信息
该链接帮助我解决了问题。 https://github.com/tiangolo/uwsgi-nginx-flask-docker/issues/127
我编辑了.sh文件,将所有CRLF替换为LF