Я пытаюсь написать простой скрипт для компиляции моего java-кода. когда я положил
javac Main.java
в моем compile.sh и сделать
bash compile.sh
Я получаю error: invalid flag: Main.java
Однако, если я просто использую команду javac Main.java
, все работает нормально.
Я использую Ubuntu VirtualBox на Win10. Как я могу заставить мой скрипт работать?
Вот проблема, которую вы видите:
$ cat compile.sh
javac Main.java
$ bash compile.sh
javac: invalid flag: Main.java
Usage: javac <options> <source files>
use -help for a list of possible options
Это происходит потому, что скрипт использует окончания строк в стиле DOS:
$ cat -v compile.sh
javac Main.java^M
Вы можете исправить это, настроив редактор для сохранения с разделителями строк Unix или, например, с помощью tr
:
$ tr -d '\r' < compile.sh > fixed.sh
(no output)
$ cat -v fixed.sh
javac Main.java
Теперь он работает так, как ожидалось:
$ bash fixed.sh
(no output)
Большое спасибо! Я понятия не имею, что это за вещь. Я буду следить за этим в будущем.
Вам нужно будет включить больше вашего скрипта. Проблема не в этой строке.