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