ข้อความแสดงข้อผิดพลาดแสดงให้เห็นว่าสคริปต์ที่คุณกำลังเรียกใช้มี\rอักขระที่ฝังอยู่ซึ่งจะแสดงให้เห็นว่ามีการ\r\nลงท้ายบรรทัดแบบ Windowsแทนที่จะเป็น\n- เฉพาะการสิ้นสุดบรรทัดที่bashคาดไว้
ในการแก้ไขด่วนคุณสามารถลบ\rตัวอักษรได้ ดังต่อไปนี้:
sed $'s/\r$//' ./install.sh > ./install.Unix.sh
หมายเหตุ: $'...'สตริงเป็นANSI-C อ้างสตริงการสนับสนุนในbash, และksh zshใช้เพื่อให้แน่ใจว่า\rขยายเป็นอักขระ CR จริงก่อนที่จะsedเห็นสคริปต์เนื่องจากsedการนำไปใช้งานทั้งหมดไม่สนับสนุน\rเป็นลำดับการหลีกเลี่ยง
แล้วเรียกใช้
./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ภายหลังเรียก
find . -type f -exec dos2unix {} \;