В cygwin я мог бы просто делать ./script.sh args, но это открывает файл сценария в блокноте в PowerShell.Запустить сценарий bash из Windows PowerShell
Что нужно сделать, чтобы выполнить его?
В cygwin я мог бы просто делать ./script.sh args, но это открывает файл сценария в блокноте в PowerShell.Запустить сценарий bash из Windows PowerShell
Что нужно сделать, чтобы выполнить его?
Вы должны поместить скрипт в качестве аргумента для * NIX оболочки вы бежите, что эквивалентно * NIXish
sh myscriptfile
sh ./script.sh работает. – wsorenson
Действительно? Я получаю. Термин «sh» не распознается как имя командлета, функции, файла сценария или исполняемой программы. – KCD
Оговорка к принятому ответу заключается в том, что 'sh' не включен в ваниль Powershell. Я должен был установить Git, который, возможно, добавляет некоторые инструменты UNIX в «PATH» в Powershell, причем sh.exe является одним из них. – peplin
Если добавить расширение .SH
к переменной окружения PATHEXT
, вы сможете запустить оболочку скрипты из PowerShell, используя только имя сценария с аргументами:
PS> .\script.sh args
Если вы храните ваши сценарии в каталоге, который включен в переменную окружения PATH, вы можете запустить его из любого места, и опускаем расширение и путь:
PS> script args
Примечание: sh.exe или другая оболочка nix должна быть связана с расширением .sh.
Для пользователей, не относящихся к PowerShell, которые хотят это сделать, как правильно обновить PowerShell 'PATH' переменная? –
Powershell использует те же переменные среды, что и все другие программы.Если вы введете «системную среду» в меню запуска Windows, вы должны увидеть, что параметр панели управления подходит для редактирования переменных среды. – Rynant
Существует в настоящее время «родной» решение на Windows 10, после включения Bash на Windows, вы можете ввести Bash оболочки, набрав bash
:
Вы можете запустить Bash сценарий как bash ./script.sh
, но имейте в виду, что C находится по адресу /mnt/c
, а внешние жесткие диски не монтируются. Поэтому вам может понадобиться немного изменить свой скрипт, чтобы он был совместим с Windows.
Кроме того, даже root
, вы все равно можете получить доступ запрещен при перемещении файлов вокруг в /mnt
, но у вас есть полный root
мощность в /
файловой системе.
Также убедитесь, что ваш сценарий оболочки отформатирован в стиле Unix, или могут быть ошибки.
Мне интересно, почему вы ожидаете, что скрипт * nix-ish будет запущен в Powershell ... У них совершенно разные команды и синтаксис сценариев (также для сценариев powershell требуется расширение .ps1 AFAIK). Вы можете опубликовать скрипт bash, и кто-то может помочь вам с версией powershell. –
Потому что: он работает. См. Принятый ответ. – wsorenson
Я просвещен :) –