Я делаю приложение NW.js на Mac и хочу запустить приложение в режиме dev, дважды щелкнув значок. Первый шаг, я пытаюсь сделать мою оболочку script работать.
Используя VSCode в Windows (я хотел получить время), я создал файл run-nw
в корне моего проекта, содержащий следующее:
#!/bin/bash
cd "src"
npm install
cd ..
./tools/nwjs-sdk-v0.17.3-osx-x64/nwjs.app/Contents/MacOS/nwjs "src" &
но я получаю этот вывод:
$ sh ./run-nw
: command not found
: No such file or directory
: command not found
: No such file or directory
Usage: npm <command>
where <command> is one of: (snip commands list)
(snip npm help)
[email protected] /usr/local/lib/node_modules/npm
: command not found
: No such file or directory
: command not found
Я действительно не понимаю:
- кажется, что он принимает пустые строки в качестве команд. В моем редакторе (VSCode) я попытался заменить
\r\n
на\n
(в случае, если\r
создает проблемы), но ничего не меняет. - кажется, что он не находит папки (с инструкцией
dirname
или без нее), или, может быть, она не знает о командеcd
? - кажется, что он не понимает аргумент
install
дляnpm
- часть, которая меня действительно извращает, заключается в том, что она все еще запускает приложение (если я сделал
npm install
вручную)...
Невозможно заставить его работать правильно, и, подозревая что-то странное с самим файлом, я создал новый непосредственно на Mac, используя vim на этот раз. Я ввел те же самые инструкции и... теперь он работает без каких-либо проблем.
Разница в двух файлах показывает ровно нулевую разницу.
В чем разница? Что может сделать первый script не работать? Как я могу узнать?
Update
Следуя принятым рекомендациям по ответам, после того, как неправильные окончания строк вернулись, я проверил несколько вещей. Оказывается, так как я скопировал свой ~/.gitconfig
с моей машины Windows, у меня был autocrlf=true
, поэтому каждый раз, когда я модифицировал файл bash под Windows, он снова устанавливал окончания строки на \r\n
.
Таким образом, помимо запуска dos2unix (который вам нужно будет установить с помощью Homebrew на mac), если вы используете Git, проверьте свою конфигурацию.