Главная  /  Помощь  /  Файлы из Windows: окончания строк

Файлы из Windows: окончания строк

Почему скрипт из Windows не запускается на сервере («bad interpreter», ^M) и как перевести файл в формат Unix.

Содержание

В Windows каждая строка текстового файла заканчивается двумя символами — CR и LF, а в Linux и FreeBSD одним, LF. Скрипт или файл настроек, сохранённый в Windows, сервер может читать с ошибками.

Признаки

  • при запуске скрипта — /bin/bash^M: bad interpreter: No such file or directory;
  • в vim в конце строк видно ^M;
  • команда file script.sh пишет «with CRLF line terminators».

Как исправить

Проще всего — программой dos2unix:

dos2unix script.sh

Если её нет, установите: sudo apt install dos2unix, sudo dnf install dos2unix, во FreeBSD — sudo pkg install dos2unix. Без установки в Linux:

sed -i 's/\r$//' script.sh

В любой системе — через новый файл:

tr -d '\r' < script.sh > script-unix.sh

Обратно, в формат Windows: unix2dos файл.txt (из того же пакета).

Как не допускать

Выберите в редакторе на компьютере окончания LF: в VS Code — надпись «CRLF» внизу справа → «LF», в Notepad++ — меню «Правка», пункт про формат конца строк → UNIX (LF). Если файлы попадают на сервер через git, за окончания строк отвечает настройка core.autocrlf.

Не нашли ответ? Напишите в поддержку — подскажем.

Контакты (495) 664-22-98 или Написать нам

© 2026 Транзит Телеком · Все права защищены