Pesan kesalahan menunjukkan bahwa skrip yang Anda panggil memiliki \r
karakter yang disematkan , yang pada gilirannya menunjukkan bahwa ia memiliki akhiran baris gaya Windows\r\n
daripada yang diharapkan \n
-hanya akhir baris bash
.
Sebagai perbaikan cepat , Anda dapat menghapus \r
karakter. sebagai berikut:
sed $'s/\r$//' ./install.sh > ./install.Unix.sh
Catatan: $'...'
string adalah ANSI-C string dikutip didukung dalam bash
, ksh
, dan zsh
. Ini digunakan untuk memastikan bahwa \r
ekspansi ke karakter CR aktual sebelum sed
melihat skrip, karena tidak semua sed
implementasi itu sendiri mendukung \r
sebagai escape sequence.
lalu lari
./install.Unix.sh --clang-completer
Namun, pertanyaan yang lebih besar adalah mengapa Anda berakhir dengan \r\n
file -style - kemungkinan besar, file lain juga terpengaruh.
Mungkin Anda menjalankan Git di Windows , di mana konfigurasi tipikal adalah untuk mengonversi \n
jeda baris gaya Unix menjadi \r\n
jeda baris gaya Windows saat memeriksa file dan mengonversi ulang menjadi \n
-hanya baris saat melakukan .
Meskipun ini masuk akal untuk pengembangan di Windows, ini menghalangi skenario penginstalan seperti ini.
Untuk membuat Git memeriksa file dengan akhiran file bergaya Unix di Windows - setidaknya untuk sementara - gunakan:
git config --global core.autocrlf false
Kemudian jalankan git clone
lagi perintah instalasi Anda .
Untuk memulihkan perilaku Git nanti, jalankan git config --global core.autocrlf true
.
find . -type f -exec dos2unix {} \;
Perintah cepat untuk mengubah akhiran baris:
sumber
Dalam kasus saya, saya memiliki konfigurasi git yang salah. Dokumentasi git menyatakan:
Saya menggunakan Mac OS dan saya mengalami masalah ini di salah satu proyek saya. Untuk mengatasinya, saya beralih
autocrlf
ketrue
mana yang salah.Anda dapat memeriksa
autocrlf
status konfigurasi git Anda seperti ini:Jadi jika ini kembali
true
dan masalah terjadi dalam repositori git, Anda harus mengubah konfigurasi itu menjadipada sistem Mac / Unix. Untuk proyek khusus Windows yang dapat Anda gunakan
git config --global core.autocrlf false
Dalam kasus saya, saya menghapus repositori git dan mengkloningnya lagi dan setelah itu semuanya berfungsi seperti yang diharapkan.
Cari tahu lebih lanjut di https://www.git-scm.com/book/en/v2/Customizing-Git-Git-Configuration
sumber
Seperti yang dikatakan komentar di atas, ini terjadi karena ujung baris windows. Untuk memperbaiki masalah, ikuti langkah-langkah berikut
Untuk Mac:
brew install dos2unix # Installs dos2unix Mac find . -type f -exec dos2unix {} \; # recursively removes windows related stuff
Untuk Linux:
sudo apt-get install -y dos2unix # Installs dos2unix Linux sudo find . -type f -exec dos2unix {} \; # recursively removes windows related stuff
Dan pastikan konfigurasi git Anda disetel sebagai berikut:
sumber
Dalam kasus saya, saya memiliki konfigurasi git yang salah. Dokumentasi git menyatakan:
Saya menggunakan Mac OS dan saya mengalami masalah ini di salah satu proyek saya. Untuk mengatasinya saya menyetel
autocrlf
ketrue
.Anda dapat memeriksa
autocrlf
status konfigurasi git Anda seperti ini:Jadi jika ini kembali
true
dan masalah terjadi dalam repositori git, Anda harus mengubah konfigurasi itu menjadiyang mana yang benar untuk sistem Mac / Unix. Untuk proyek khusus Windows yang dapat Anda gunakan
git config --global core.autocrlf false
Dalam kasus saya, saya menghapus repositori git dan memeriksanya lagi dan setelah itu semuanya berfungsi seperti yang diharapkan.
Cari tahu lebih lanjut di https://www.git-scm.com/book/en/v2/Customizing-Git-Git-Configuration
sumber
Tautan ini membantu saya menyelesaikan masalah. https://github.com/tiangolo/uwsgi-nginx-flask-docker/issues/127
Saya mengedit file .sh saya, mengganti semua CRLF dengan LF
sumber