ข้อความแสดงข้อผิดพลาดแสดงให้เห็นว่าสคริปต์ที่คุณกำลังเรียกใช้มี\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 {} \;