23

Я пользователь Mac и новичок в Windows. Как я могу выполнить сценарий оболочки в Windows?

Обычно я сохраняю текстовый файл с расширением .sh и запускаю его через терминал. Но как я мог сделать это в Windows?

8 ответов8

29

Сценарии с суффиксом .sh обычно являются сценариями оболочки Bourne (или bash, или ksh, или zsh - все оболочки, полученные из оболочки Bourne). (Обратите внимание, что в Unix-подобных системах, включая MacOS, суффикс .sh не обязателен; ОС смотрит на #!/bin/sh в верхней части скрипта, чтобы определить, как его выполнить.)

Windows не предоставляет Bourne-подобную оболочку.

Вы можете установить Cygwin, которая предоставляет Unix-подобную среду под Windows - но у нее нет особо "родной" среды. (Редакционный комментарий: Cygwin отлично подходит для таких людей, как я, которым нужно использовать Windows, но на самом деле лучше использовать Unix.)

Существуют и другие Unix-подобные подсистемы, работающие под Windows, включая MinGW и пакет Windows Services for UNIX , предоставляемый Microsoft.

Или вместо того, чтобы пытаться писать и запускать Unix-подобные сценарии оболочки, вы можете писать пакетные файлы Windows. Обычно они имеют суффикс .bat или .cmd . Они используют те же команды и синтаксис, что и интерактивная командная строка Windows.

Также есть относительно новый Windows PowerShell ; Я сам не знаком с этим, но слышал об этом много хорошего.

6

Вы можете использовать Cygwin. Это обеспечивает Linux как среду в Windows.

2

А как насчет UWIN?

UWIN - это компьютерный программный пакет, созданный Дэвидом Корном, который позволяет создавать и запускать программы, написанные для операционной системы Unix, в Microsoft Windows с небольшими изменениями, если таковые имеются. Часть разработки программного обеспечения была заключена по контракту с Wipro, Индия.

Проверьте это UWIN - Unix для Windows

Существенные особенности UWIN

  1. Доступ почти ко всем инструментам командной строки из Unix на Windows. 245 инструментов командной строки, если быть точным.
  2. Поставляется в комплекте с оригинальным компилятором Unix 'cc', а также множеством инструментов, таких как 'make', и необходимыми библиотеками, которые позволяют создавать и запускать приложения Unix на машинах Windows с очень небольшими изменениями или без изменений в исходном коде.
  3. Возможность использовать другие компиляторы, такие как Visual C++ или Mingw для компиляции программ. Полноценный пакет Perl.
  4. Библиотеки X Windows для тех, кто стремится разрабатывать приложения X для Windows. Хотя для запуска этих приложений в Windows вам нужен X-сервер, который не входит в комплект UWIN.
  5. UWIN поставляется с апплетом панели управления (доступ через «Пуск-> Настройка-> Панель управления-> UWIN»), который можно использовать для настройки некоторых параметров системы UWIN.

Использование UWIN

  • Запускайте приложения Unix в Windows на полной скорости.
  • Используйте все возможности инструментов командной строки Unix в Windows.
  • Оболочка korn в комплекте с UWIN позволяет пользователю Unix чувствовать себя как дома в среде Windows.
  • Разработка и запуск приложений UNIX в Windows.
  • Разработка приложений X на платформе Windows.

Недостатки UWIN

  • UWIN не поставляется в комплекте с X-сервером, поэтому пользователь не сможет запускать X-приложения в Windows. Хотя существуют сторонние коммерческие X-серверы, которые могут заполнить этот пробел.
  • UWIN не распространяется под лицензией GPL, но его можно бесплатно загрузить и использовать в образовательных и некоммерческих целях.

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


Ссылка: WikiPedia

Cygwin - это Unix-подобная среда и интерфейс командной строки для Microsoft Windows.

Хорошо, что Cygwin обеспечивает встроенную интеграцию приложений, данных и других системных ресурсов на базе Windows с приложениями, программными инструментами и данными Unix-подобной среды.

Interix
Interix является компонентом Services for Unix (SFU) версий 3.0 и 3.5 (последний распространяется бесплатно).

Самые последние выпуски Interix, 5.2 и 6.0, являются компонентами выпусков Windows Server 2003 R2, Windows Vista Enterprise и Ultimate и Windows Server 2008 под названием SUA (подсистема для приложений на основе Unix). Версия 6.1 включена в Windows 7 (Enterprise и Ultimate) и Windows Server 2008 R2 (все выпуски)

2

Есть еще один способ сделать это с помощью обновления Anniversary для Windows 10. Теперь в Windows доступна оболочка Bash (Ubuntu).

Чтобы использовать его, вам нужно установить функцию, так как она не включена по умолчанию.

  1. Зайдите в Control Panel -> Programs -> Turn Windows Features On and Off .

  2. Установите флажок для Windows Subsystem for Linux (Beta) . Это установит функцию и предложит перезагрузить компьютер.

Затем вы можете открыть командную строку через run -> cmd затем набрать bash или run -> bash.exe .

Это даст вам оболочку bash без виртуальной машины, Cygwin или virtualbox.

2

На Win распространенными расширениями являются .bat или .cmd . Хорошим источником команд, используемых в оболочке Windows, является ss64 - для CMD и PowerShell.

Cygwin не является обязательным. Это просто дает вам стиль Linux - используйте BASH на Win.

1

Несмотря на то, что существующие ответы здесь были правильными в то время, Windows 10 делает сейчас необязательно включать в себя модифицированную версию Ubuntu работает полный Баш оболочку.

После установки вы можете открыть приглашение bash (как и терминал в OS X/macOS) и запустить скрипт как обычно, то есть:

chmod +x myscript.sh
./myscript.sh

Если вы хотите запустить скрипт непосредственно из Windows, вы можете создать ярлык в том же каталоге и установить для «Target» что-то вроде:

C:\Windows\System32\bash.exe -c "./myscript.sh"

Если путь вашего сценария относительно местоположения ярлыка (как в примере выше), убедитесь, что поле «Начать с» также пустое.

0

Правильный ответ был дан в комментарии Kenaniah, вы должны использовать пакетные файлы. Вам нужно присвоить файлу кода оболочки имя * .bat, затем вы можете запустить его, щелкнув по нему или просто набрав его имя в терминале. Обратите внимание, что терминал Windows работает не так, как терминал Unix. Вы найдете много помощи и учебных пособий для команд и синтаксиса по всей сети. Существует также возможность использовать Windows PowerShell, которая кажется более похожей на Unix.

0

Вам понадобится CygWin, и тогда я верю, что вы сможете просто запустить:

sh yourscript.sh

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .