Как запустить скрипт оболочки в Windows? [Дубликат]

23

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

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

терминатор
источник
1
Пакетные файлы. en.wikipedia.org/wiki/Batch_file
Кенания,
2
Можете ли вы привести пример сценария, который вы ожидаете запустить в Windows?
1
Вы хотите запустить уже существующий .shсценарий оболочки? Или просто хотите узнать, как писать сценарии для Windows?
Келтари

Ответы:

30

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

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

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

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

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

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

Кит Томпсон
источник
3
Я поддержу предложение PowerShell как пользователя PowerShell, который написал несколько сценариев для выполнения всего: от перезагрузки удаленного компьютера или выключения служб на удаленном компьютере до извлечения списка имен компьютеров из активного каталога, их алфавитизации и проверки каждого на определенные услуги и делать большие сложные перемещения файлов. Это может буквально сделать это ВСЕ в окнах.
Paperlantern
1
Стоит отметить, что хотя cygwin может разрешить запуск сценария, он может работать некорректно, если он делает некоторые предположения о базовой системе (то есть, о доступных двоичных файлах, разметке файловой системы и т. Д.)
Daenyth
7

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

ChandanK
источник
2

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

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

Bakudan
источник
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или запустить -> bash.exe.

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

Matt
источник
1

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

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

chmod +x myscript.sh
./myscript.sh

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

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

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

Molomby
источник
0

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

sh yourscript.sh
dpl47
источник
0

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

Майкл К
источник