Повідомлення про помилку свідчить про те, що скрипт, який ви викликаєте, має вбудовані \r
символи , що, в свою чергу, свідчить про те, що в ньому є закінчення рядків у стилі Windows\r\n
замість \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 , де типовою конфігурацією є перетворення \n
розривів рядків у стилі Unix на розриви рядків у стилі 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 {} \;