Вот некоторая базовая информация о Unix. Предоставляется не так много деталей, относящихся к «Эль-Капитану», но они не нужны для того, чтобы все заработало. (Я понимаю, что обновление до "El Capitan" сломало вещи. Возможно, это изменило то, что находится на вашем пути, или изменило некоторые разрешения. Ниже приведены подробности о том, как заставить вещи работать.
В DOS командный файл - это текстовый файл, который заканчивается на ".BAT "(без учета регистра, поэтому" .bat "также будет работать). Microsoft Windows следует традиции DOS. Каждая строка в командном файле - это команда, запускаемая из интерпретатора команд.
В Unix, включая Mac OS X, надлежащий файл "сценария оболочки" должен иметь надлежащий заголовок и соответствующие разрешения. Затем после заголовка каждая строка в пакетном файле представляет собой команду, запускаемую из интерпретатора команд.
Обратите внимание, что эти описания в основном одинаковы. В основном, большая часть файла сценария представляет собой просто список команд для запуска. Команды, которые одинаковы для DOS и Unix, такие как «cd ..» или имена исполняемых файлов в PATH, могут одинаково хорошо работать с обоими типами файлов.
Если у вас был файл сценария Unix, который сказал:
#!/bin/sh
@Echo Off
echo hello
cd .
more < readme.txt
Тогда первая строка файла вызовет безвредную ошибку в DOS/Windows, вторая строка файла вызовет сообщение об ошибке harmelss в Unix, а остальная часть файла может работать одинаково в обеих средах.
Будет ли это на самом деле хорошо работать для вас или нет, во многом зависит от того, какие команды вы используете. Например, « cd bin
» может хорошо работать в обеих средах, но DOS/Windows используют обратную косую черту в качестве разделителя каталогов, а Unix использует прямую косую черту. Поэтому некоторые команды могут не работать хорошо.
Лучший способ предсказать, насколько хорошо будет работать ваш конкретный пакетный файл, - это если мы знали содержимое пакетного файла. Вот почему комментарий Барлопа спросил о содержимом командного файла.
Относительно вашего вопроса (из одного из ваших комментариев), какое расширение использовать: В DOS/Windows ответ "".BAT "(подойдет любое количество строчных букв, так что" .bat "тоже подойдет.) В Unix наиболее распространенными стандартами являются "none" (без расширения) или « .sh
». Однако в Unix расширение действительно не имеет большого значения. Важно то, имеет ли файл необходимые разрешения и, возможно, начинается ли он с соответствующего заголовка. Поэтому убедитесь, что все правильно. (Заголовок - первая строка, показанная в моем предыдущем примере. Разрешения могут быть установлены с помощью « chmod a+x filename.bat
», но, конечно, укажите фактическое местоположение файла.) Когда вы запускаете файл в Unix, убедитесь, что вы указали полное имя файла скрипта, включая расширение «.bat». (Если вам не нравится это делать, просто создайте символическую ссылку, имеющую символическую ссылку с именем "gonow", указывающую на "gonow.bat" (или что-то другое).
Другой способ сделать это в Unix - запустить.BAT-файл из другого программного обеспечения, похожего на DOS. например, COMMAND.COM в Wine, или, возможно, CMD.EXE в WINE, или другие варианты Wine, такие как Crossover, или другое программное обеспечение, такое как DOSBox или DOSemu. Если вы используете это программное обеспечение, предназначенное для работы, аналогично DOS, то оно может запускать файл, не требуя указания расширения «.bat».
Другой альтернативой может быть простое использование файла сценария оболочки, который запускает Java (поскольку содержимое пакетного файла, упомянутое в другом месте, показывает работу Java), и игнорирование попытки использовать файл, заканчивающийся расширением «.bat». (Таким образом, это не файл .bat, а сценарий оболочки или символическая ссылка.)