Thông báo lỗi cho thấy rằng tập lệnh mà bạn đang gọi có các \r
ký tự được nhúng , do đó gợi ý rằng tập lệnh có kết thúc dòng kiểu Windows\r\n
thay vì \n
kết thúc dòng chỉ bash
mong đợi.
Để khắc phục nhanh chóng , bạn có thể xóa các \r
ký tự. như sau:
sed $'s/\r$//' ./install.sh > ./install.Unix.sh
Lưu ý: Các $'...'
chuỗi là một ANSI-C chuỗi trích dẫn hỗ trợ trong bash
, ksh
và zsh
. Nó được sử dụng để đảm bảo rằng các ký tự \r
mở rộng thành một ký tự CR thực tế trước khi sed
nhìn thấy tập lệnh, bởi vì sed
bản thân không phải tất cả các triển khai đều hỗ trợ \r
như một chuỗi thoát.
và sau đó chạy
./install.Unix.sh --clang-completer
Tuy nhiên, câu hỏi lớn hơn là tại sao bạn lại kết thúc với \r\n
các tệp kiểu - rất có thể, các tệp khác cũng bị ảnh hưởng.
Có lẽ bạn đang chạy Git trên Windows , trong đó cấu hình điển hình là chuyển đổi \n
ngắt dòng kiểu Unix thành ngắt \r\n
dòng kiểu Windows khi kiểm tra tệp và chuyển đổi lại thành \n
ngắt dòng chỉ khi cam kết .
Mặc dù điều này có ý nghĩa đối với sự phát triển trên Windows, nhưng nó lại cản trở các tình huống cài đặt như thế này.
Để làm cho Git kiểm tra các tệp có đuôi tệp kiểu Unix trên Windows - ít nhất là tạm thời - hãy sử dụng:
git config --global core.autocrlf false
Sau đó chạy lại các lệnh cài đặt của bạn git clone
.
Để khôi phục hành vi của Git sau này, hãy chạy git config --global core.autocrlf true
.
find . -type f -exec dos2unix {} \;