环境:庆典 :没有这样的文件或目录[重复]

问题描述 投票:0回答:11

我正在尝试从这里安装YouCompleteMe。

当我执行时:

./install.sh --clang-completer

我得到这个错误:

env: bash\r: No such file or directory

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

which bash 
/bin/bash

需要改成

/usr/bash
吗?如果是,那我该怎么做?我尝试更改
~/.bashrc
文件,但没有用。

windows git bash line-endings core.autocrlf
11个回答
274
投票

错误消息表明 您正在调用的脚本嵌入了

\r
字符,这反过来表明它具有 Windows 风格
\r\n
行结尾
而不是
\n
-only 行结尾
bash 
期待。

作为 quick fix,您可以删除

\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
风格的文件——很可能其他文件也受到了影响。

也许你在 Windows 上运行 Git,其中 典型的配置是将 Unix 风格的

\n
-only 换行符转换为 Windows 风格的
\r\n
换行符checking files 并重新转换为
\n
-仅在提交时换行
.

虽然这 对于 Windows 上的 development 有意义,但它 妨碍了像这样的 installation 场景

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

git config --global core.autocrlf false

然后再次运行涉及

git clone
的安装命令。

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

git config --global core.autocrlf true
.


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

47
投票

这是由于窗口行结束而发生的。要解决此问题,请按照以下步骤

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


23
投票

转换行尾的快捷命令:

dos2unix thescript.sh

21
投票

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


20
投票

如果您使用的是 VS Code,您可以从

CRLF
切换到
LF
并再次保存文件。这将用 LF 替换所有 CRLF。


16
投票

遇到类似的事情。您可以使用

dos2unix install.sh
转换行尾。多个文件通过
find [pattern] | xargs dos2unix


11
投票

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

如果您在 Windows 上编程并与非 Windows 的人一起工作 (反之亦然),您可能会在某些时候遇到行尾问题 点

我使用的是 Mac 操作系统,我在我的一个项目中确实遇到了这个问题。为了解决这个问题,我把

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

了解更多信息

1
投票

我之前尝试降级flutter的时候也遇到过这个问题

这解决了我的问题

rm -rf flutter
git config --global core.autocrlf false
git clone [email protected]:flutter/flutter.git
flutter channel stable

0
投票

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

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


0
投票

就我而言: 我下载WINDOWS版解压到MAC就出现这个错误

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

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

  1. mkdir 源
  2. CD 源
  3. git 克隆https://github.com/flutter/flutter.git -b stable
  4. export PATH="$PATH:
    pwd
    /flutter/bin"
  5. 颤振医生
© www.soinside.com 2019 - 2024. All rights reserved.