2009-07-08 2 views
19

В cygwin я мог бы просто делать ./script.sh args, но это открывает файл сценария в блокноте в PowerShell.Запустить сценарий bash из Windows PowerShell

Что нужно сделать, чтобы выполнить его?

+1

Мне интересно, почему вы ожидаете, что скрипт * nix-ish будет запущен в Powershell ... У них совершенно разные команды и синтаксис сценариев (также для сценариев powershell требуется расширение .ps1 AFAIK). Вы можете опубликовать скрипт bash, и кто-то может помочь вам с версией powershell. –

+0

Потому что: он работает. См. Принятый ответ. – wsorenson

+2

Я просвещен :) –

ответ

15

Вы должны поместить скрипт в качестве аргумента для * NIX оболочки вы бежите, что эквивалентно * NIXish

sh myscriptfile 
+1

sh ./script.sh работает. – wsorenson

+9

Действительно? Я получаю. Термин «sh» не распознается как имя командлета, функции, файла сценария или исполняемой программы. – KCD

+19

Оговорка к принятому ответу заключается в том, что 'sh' не включен в ваниль Powershell. Я должен был установить Git, который, возможно, добавляет некоторые инструменты UNIX в «PATH» в Powershell, причем sh.exe является одним из них. – peplin

4

Если добавить расширение .SH к переменной окружения PATHEXT, вы сможете запустить оболочку скрипты из PowerShell, используя только имя сценария с аргументами:

PS> .\script.sh args 

Если вы храните ваши сценарии в каталоге, который включен в переменную окружения PATH, вы можете запустить его из любого места, и опускаем расширение и путь:

PS> script args 

Примечание: sh.exe или другая оболочка nix должна быть связана с расширением .sh.

+0

Для пользователей, не относящихся к PowerShell, которые хотят это сделать, как правильно обновить PowerShell 'PATH' переменная? –

+1

Powershell использует те же переменные среды, что и все другие программы.Если вы введете «системную среду» в меню запуска Windows, вы должны увидеть, что параметр панели управления подходит для редактирования переменных среды. – Rynant

11

Существует в настоящее время «родной» решение на Windows 10, после включения Bash на Windows, вы можете ввести Bash оболочки, набрав bash: Bash on Windows

Вы можете запустить Bash сценарий как bash ./script.sh, но имейте в виду, что C находится по адресу /mnt/c, а внешние жесткие диски не монтируются. Поэтому вам может понадобиться немного изменить свой скрипт, чтобы он был совместим с Windows.

Кроме того, даже root, вы все равно можете получить доступ запрещен при перемещении файлов вокруг в /mnt, но у вас есть полный root мощность в / файловой системе.

Также убедитесь, что ваш сценарий оболочки отформатирован в стиле Unix, или могут быть ошибки. Example script

Смежные вопросы