Я использую версию подсистемы Windows для Linux для Ubuntu. Там я создал простой проект cmake и создал скрипт, который избавил меня от необходимости печатать
cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug ../../
каждый раз, когда я хочу собрать. Мой CMakeLists.txt существует в двух каталогах выше (таким образом ../../
). Сборка работает нормально, если я ввожу указанную выше команду вручную ИЛИ запускаю скрипт powershell с той же самой командой , точной и ничем иным.
Но при запуске этого bash-скрипта внутри WSL
#!/bin/bash
cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug ../../
я получаю сообщение об ошибке " does not exist.source directory "/mnt/c/dev-files/C/Practice/
.
Похоже, что bash-скрипт испортил вывод ошибок cmake, поэтому я предполагаю, что скрипт выполняет cmake или неправильно передает аргументы, но я понятия не имею, почему.
При испытании других команд я заметил, что некоторые другие аргументы команды имели \r
в окончаниях строки, на которые указывают ошибки.
Проблема была то, что сценарий имел окончания строки окон, как steeldriver прокомментировал в вопросе.
Это была en легкая фиксация с dos2unix
команда, исключая:
dos2unix script.sh