Вопрос:

Кроссплатформенный скрипт командной строки (например, .bat и .sh)

bash shell command-line cross-platform

2347 просмотра

2 ответа

195 Репутация автора

Я заметил, что Windows 7 позволяет выполнять файлы .sh, как если бы они были файлами .bat. Это заставило меня задуматься о том, можно ли написать файл .sh таким образом, чтобы он мог выполняться в Windows и Linux (скажем, bash).

Первое, что приходит мне в голову, - это создать оператор if, чтобы Windows и Ubuntu могли с ним справиться и перейти в соответствующий блок для выполнения специфичных для платформы команд. Как это могло быть сделано?

Примечание: я знаю, что это не очень хорошая практика. Я также знаю, что языки сценариев, такие как Python, гораздо лучше подходят для решения этой проблемы, чем сценарий командной строки со смешанным синтаксисом. Мне просто любопытно...

Автор: wehnsdaefflae Источник Размещён: 30.04.2015 11:46

Ответы (2)


-1 плюса

3095 Репутация автора

AFAIK, вы не можете напрямую запускать .sh файлы из Windows cmd.exe. Для этого вам понадобится слой эмуляции * nix для запуска оболочки. Проверьте Cygwin или Msys / MinGW

Автор: dekkard Размещён: 30.04.2015 11:51

12 плюса

4524 Репутация автора

Решение

Вы можете использовать это:

rem(){ :;};rem '
@goto b
';echo sh;exit
:b
@echo batch

Это допустимый сценарий оболочки и пакет, и он будет выполнять различные блоки в зависимости от того, как он выполняется.

Измените echoи @echoлинию , чтобы сделать то , что вы хотите.

Автор: Biffen Размещён: 30.04.2015 11:52
Вопросы из категории :
32x32