여기 에서 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
A와 빠른 수정 , 당신은 제거 할 수있는 \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
전용 줄 바꿈을 Windows 스타일 \r\n
줄 바꿈으로 변환하고 커밋 할 때 전용 줄 바꿈으로 다시 변환 하는 것\n
입니다.
이것은 Windows에서의 개발 에는 의미가 있지만 다음 과 같은 설치 시나리오를 방해 합니다 .
Windows 에서 Unix 스타일 파일로 끝나는 파일을 Git으로 확인 하려면 -최소한 일시적으로-다음을 사용하십시오.
git config --global core.autocrlf false
그런 다음 git clone
다시 관련된 설치 명령을 실행 하십시오.
나중에 Git의 동작을 복원하려면 git config --global core.autocrlf true
.
답변
>vim gradlew
:set fileformat=unix
:wq
>./gradlew clean build
답변
파일에 Windows 줄 끝이 있습니다. Unix 줄 끝으로 변경하십시오.
답변
비슷한 것을 발견했습니다. dos2unix install.sh
줄 끝을 변환하는 데 사용할 수 있습니다 . 여러 파일을 통해find [pattern] | xargs dos2unix
답변
줄 끝 변환을위한 빠른 명령 :
dos2unix thescript.sh
답변
제 경우에는 잘못된 자식 구성이 있습니다. 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의 경우 :
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