В cygwin я мог бы просто делать. / script.sh args, но это открывает файл script в блокноте в PowerShell.
Что мне нужно сделать, чтобы выполнить его?
Ответ 1
Вы должны поместить аргумент script в качестве оболочки * NIX, которую вы запускаете, что эквивалентно * NIXish
sh myscriptfile
Ответ 2
Теперь в Windows 10 появилось "собственное" решение, после включения Bash в Windows вы можете ввести оболочку Bash, набрав bash:
Вы можете запустить Bash script как bash ./script.sh, но имейте в виду, что диск C находится в /mnt/c, а внешние жесткие диски не монтируются. Поэтому вам может потребоваться немного изменить ваш script, чтобы он был совместим с Windows.
Кроме того, даже в качестве root вы все равно можете получить разрешение на перемещение файлов в /mnt, но у вас есть полная мощность root в файловой системе /.
Также убедитесь, что ваша оболочка script отформатирована в стиле Unix, или могут быть ошибки.
Ответ 3
Если вы добавите расширение .SH в переменную среды PATHEXT, вы сможете запускать сценарии оболочки из PowerShell, используя только имя script с аргументами:
PS> .\script.sh args
Если вы храните свои скрипты в каталоге, включенном в переменную среды PATH, вы можете запустить его из любого места и опустить расширение и путь:
PS> script args
Примечание: sh.exe или другая оболочка * nix должны быть связаны с расширением .sh.