env: bash\r: 没有那个文件或目录
env: bash\r: No such file or directory
我正在尝试从 here 安装 YouCompleteMe。
当我执行时:
./install.sh --clang-completer
我收到这个错误:
env: bash\r: No such file or directory
不知道环境变量有什么问题。这是我的 bash 路径:
which bash
/bin/bash
需要改成/usr/bash
吗?如果是,那我该怎么做?我尝试更改 ~/.bashrc
文件,但没有成功。
错误消息表明您正在调用的脚本已嵌入 \r
个字符,这反过来又表明它具有 Windows 样式 \r\n
行结尾 而不是 \n
-仅行结尾 bash
期望。
作为快速修复,您可以删除 \r
个字符。如下:
sed $'s/\r$//' ./install.sh > ./install.Unix.sh
注意:$'...'
字符串是 bash
、ksh
和 zsh
支持的 ANSI-C quoted string。它用于确保 \r
在 sed
看到脚本之前扩展为实际的 CR 字符,因为并非所有 sed
实现本身都支持 \r
作为转义序列。
然后是运行
./install.Unix.sh --clang-completer
然而,更大的问题是为什么您最终得到 \r\n
样式的文件 - 很可能其他文件也会受到影响。
也许您在 Windows 上 运行ning Git,其中 典型配置是转换 Unix -style \n
-only line breaks to Windows-style \r\n
line breaks on checking files out and re-converting to \n
-仅在 committing.
时换行
虽然此 对 Windows 上的 开发 有意义,但它 妨碍了 安装 场景 像这样。
为了 make 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
的多个文件
>vim gradlew
:set fileformat=unix
:wq
>./gradlew clean build
转换行尾的快捷命令:
dos2unix thescript.sh
这 link 帮我解决了这个问题。
https://github.com/tiangolo/uwsgi-nginx-flask-docker/issues/127
我编辑了我的 .sh 文件,将所有 CRLF 替换为 LF
就我而言,我的 git 配置有误。 git 文档指出:
If you’re programming on Windows and working with people who are not
(or vice-versa), you’ll probably run into line-ending issues at some
point
我正在使用 Mac OS,我的一个项目确实遇到了这个问题。为了解决这个问题,我把 autocrlf
变成了 true
这是错误的。
您可以像这样检查 git 配置的 autocrlf
状态:
git config core.autocrlf
因此,如果此 returns 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
了解更多信息
它是由于 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
input
确保在写入对象数据库时将 CRLF 转换为 LF
以我为例:
当我下载 WINDOWS 版本并将其解压缩到 MAC
时出现此错误
然后将windows版本路径添加到.bash_profile或.zprofile
所以我的解决方案是从 (.bash_profile 和 .zprofile) 中删除路径
然后通过打开终端并输入:
下载 mac 版本
- mkdir 源码
- cd 源码
- git克隆https://github.com/flutter/flutter.git-b稳定
- export PATH="$PATH:
pwd
/flutter/bin"
- 扑博士
我之前尝试降级flutter时遇到过这个问题
这解决了我的问题
rm -rf flutter
git config --global core.autocrlf false
git clone git@github.com:flutter/flutter.git
flutter channel stable
如果您使用的是 MAC,并使用 VS Code,您可以从 CRLF
切换到 LF
并再次保存文件。这会将所有 CRLF 替换为 LF。
我正在尝试从 here 安装 YouCompleteMe。
当我执行时:
./install.sh --clang-completer
我收到这个错误:
env: bash\r: No such file or directory
不知道环境变量有什么问题。这是我的 bash 路径:
which bash
/bin/bash
需要改成/usr/bash
吗?如果是,那我该怎么做?我尝试更改 ~/.bashrc
文件,但没有成功。
错误消息表明您正在调用的脚本已嵌入 \r
个字符,这反过来又表明它具有 Windows 样式 \r\n
行结尾 而不是 \n
-仅行结尾 bash
期望。
作为快速修复,您可以删除 \r
个字符。如下:
sed $'s/\r$//' ./install.sh > ./install.Unix.sh
注意:$'...'
字符串是 bash
、ksh
和 zsh
支持的 ANSI-C quoted string。它用于确保 \r
在 sed
看到脚本之前扩展为实际的 CR 字符,因为并非所有 sed
实现本身都支持 \r
作为转义序列。
然后是运行
./install.Unix.sh --clang-completer
然而,更大的问题是为什么您最终得到 \r\n
样式的文件 - 很可能其他文件也会受到影响。
也许您在 Windows 上 运行ning Git,其中 典型配置是转换 Unix -style \n
-only line breaks to Windows-style \r\n
line breaks on checking files out and re-converting to \n
-仅在 committing.
虽然此 对 Windows 上的 开发 有意义,但它 妨碍了 安装 场景 像这样。
为了 make 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
>vim gradlew
:set fileformat=unix
:wq
>./gradlew clean build
转换行尾的快捷命令:
dos2unix thescript.sh
这 link 帮我解决了这个问题。 https://github.com/tiangolo/uwsgi-nginx-flask-docker/issues/127
我编辑了我的 .sh 文件,将所有 CRLF 替换为 LF
就我而言,我的 git 配置有误。 git 文档指出:
If you’re programming on Windows and working with people who are not (or vice-versa), you’ll probably run into line-ending issues at some point
我正在使用 Mac OS,我的一个项目确实遇到了这个问题。为了解决这个问题,我把 autocrlf
变成了 true
这是错误的。
您可以像这样检查 git 配置的 autocrlf
状态:
git config core.autocrlf
因此,如果此 returns 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
了解更多信息它是由于 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
input
确保在写入对象数据库时将 CRLF 转换为 LF
以我为例: 当我下载 WINDOWS 版本并将其解压缩到 MAC
时出现此错误然后将windows版本路径添加到.bash_profile或.zprofile
所以我的解决方案是从 (.bash_profile 和 .zprofile) 中删除路径 然后通过打开终端并输入:
下载 mac 版本- mkdir 源码
- cd 源码
- git克隆https://github.com/flutter/flutter.git-b稳定
- export PATH="$PATH:
pwd
/flutter/bin" - 扑博士
我之前尝试降级flutter时遇到过这个问题
这解决了我的问题
rm -rf flutter
git config --global core.autocrlf false
git clone git@github.com:flutter/flutter.git
flutter channel stable
如果您使用的是 MAC,并使用 VS Code,您可以从 CRLF
切换到 LF
并再次保存文件。这会将所有 CRLF 替换为 LF。