env: bash\r: нет такого файла или каталога
Я пытаюсь установить YouCompleteMe отсюда.
Когда я выполню:
./install.sh --clang-completer
Я получаю эту ошибку:
env: bash\r: No such file or directory
Я не знаю, что не так с переменными среды. Вот мой путь bash:
which bash
/bin/bash
Нужно ли менять его на / usr / bash? Если да, то как мне это сделать? Я попытался изменить файл ~/.bashrc, но это не сработало.
12 ответов
Сообщение об ошибке говорит о том, что вызываемый скрипт имеет встроенный \r
персонажи, что в свою очередь говорит о том, что он имеет стиль Windows \r\n
окончания строки вместо \n
конец строки bash
надеется.
Как быстрое решение, вы можете удалить \r
символы. следующее:
sed $'s/\r$//' ./install.sh > ./install.Unix.sh
а потом беги
./install.Unix.sh --clang-completer
Тем не менее, большой вопрос, почему вы закончили с \r\n
файлы в стиле - скорее всего, затронуты и другие файлы.
Возможно, вы используете Git в Windows, где типичная конфигурация - конвертировать 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
>vim gradlew
:set fileformat=unix
:wq
>./gradlew clean build
Если вы используете MAC и используете VS Code, вы можете переключиться с
CTRL
к
LF
и снова сохраните файл. Это заменит все CRLF на LF.
Быстрая команда для преобразования окончания строки:
dos2unix thescript.sh
Ваш файл имеет окончания строки Windows. Измените на конец строки Unix.
Наткнулся на нечто подобное. Ты можешь использовать dos2unix install.sh
конвертировать окончания строк. Несколько файлов через find [pattern] | xargs dos2unix
В моем случае у меня была неправильная конфигурация git. В документации git указано:
Если вы программируете в 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
Раньше у меня была эта проблема, когда я пытался понизить флаттер
это решило мою проблему
rm -rf flutter
git config --global core.autocrlf false
git clone git@github.com:flutter/flutter.git
flutter channel stable
В моем случае у меня была неправильная конфигурация git. В документации git указано:
Если вы программируете в 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
В моем случае: эта ошибка возникает, когда я скачал и разархивировал версию WINDOWS на MAC.
а затем добавил путь к версии Windows в .bash_profile или .zprofile
поэтому решение для меня заключалось в том, чтобы удалить пути из (.bash_profile и .zprofile), а затем загрузить версию для Mac, открыв терминал и набрав:
- mkdir src
- cd src
- git clone https://github.com/flutter/flutter.git -b стабильный
- экспорт PATH="$PATH:
pwd
/flutter / bin " - трепещущий доктор
Эта ссылка помогла мне решить проблему. https://github.com/tiangolo/uwsgi-nginx-flask-docker/issues/127
Я отредактировал свой файл.sh, заменив все CRLF на LF