Ответы:
Сообщение об ошибке указывает, что вы не установили bash
или его нет в вашем PATH
.
Самый популярный продукт Google - http://win-bash.sourceforge.net/, но вам также необходимо понимать, что большинство сценариев Bash ожидают Unix-подобную среду; поэтому простая установка Bash вряд ли позволит вам запустить сценарий, который вы нашли в сети, если только он не был специально разработан для этого конкретного сценария использования. Обычное решение - https://www.cygwin.com/, но есть много возможных альтернатив, в зависимости от того, чего именно вы хотите достичь.
Если Windows не занимает центральное место в вашем сценарии использования, установка бесплатной ОС (возможно, виртуализированной) может быть самым простым способом продвижения вперед.
Второе сообщение об ошибке связано с тем, что Windows номинально принимает косую черту в качестве разделителя каталогов, но в этом контексте она интерпретируется как разделитель переключателя. Другими словами, Windows анализирует вашу командную строку как app /build /build.sh
(или, если перефразировать соглашения о параметрах Unix, app --build --build.sh
). Вы можете попробовать, app\build\build.sh
но это вряд ли сработает из-за обстоятельств, изложенных выше.
Установите GIT . Во время установки GIT добавьте GIT Bash в контекстное меню Windows, выбрав соответствующий параметр. После установки щелкните правой кнопкой мыши в папке, выберите GIT Bash Here
(см. Прикрепленный рисунок) и используйте команду sh, например:
sh test.sh
sh.exe
. В моем случае это было: c:\Program Files\Git\bin
. Тогда запускаем sh .\script.sh
из PowerShell
ctrl-ins
иshift-ins
Самый распространенный способ запустить файл .sh - использовать команду sh :
C:\>sh my-script-test.sh
другой хороший вариант - установка CygWin
в находится в:Windows
home
C:\cygwin64\home\[user]
например, я выполняю свой my-script-test.sh
файл с помощью команды bash как:
jorgesys@INT024P ~$ bash /home/[user]/my-script-test.sh
sh
команды в Windows.
sh
произвольную командную строку Windows и заставить ее работать.
sh
команда устанавливаются с Git4Windows, если вы выбираете вариант установки «Установить Bash».
вы также можете использовать cmder
Cmder - это программный пакет, созданный из чистого разочарования по поводу отсутствия хороших эмуляторов консоли в Windows. Он основан на потрясающем программном обеспечении, приправлен цветовой схемой Monokai и настраиваемым макетом подсказок, выглядя сексуально с самого начала.
cmd
.
В юбилейном обновлении Windows 10 стало еще проще запускать команды оболочки в / с bash на ubuntu на windows
Я пытался установить свой регион для своего маршрутизатора x-wrt r7000 netgear, я обнаружил, что для меня сработало следующее: использование bash на ubuntu в Windows, вам нужно включить подсистему, найденную в функциях Windows, и режим разработки на
ssh admin@192.168.1.1 < /mnt/c/ccode-eu.sh
Новая функция в Windows - запускать bash в ubuntu в Windows - доступна в сборках Windows 10 «Insiders» после конференции Build:
https://blogs.windows.com/buildingapps/2016/03/30/run-bash-on-ubuntu-on-windows/
sh
файлом запустить bash
? Если я попытаюсь это сделать, окно просто мигнет и исчезнет. Если я перетаскиваю файл в открытое окно bash, он говорит, что путь не найден (потому что используется другое соглашение).
bash path/to/script
запускает сценарий. Конечно, есть и sh
в Ubuntu. Если у сценария есть надлежащий шебанг и разрешения, он просто path/to/script
запустит его с помощью интерпретатора, указанного в шебанге.
Лично я использовал этот командный файл, но для него требуется установленный CygWin (64-разрядный, как показано). Просто свяжите тип файла .SH с этим пакетным файлом (ExecSH.BAT в моем случае), и вы можете дважды щелкнуть файл .SH, и он запустится.
@echo off
setlocal
if not exist "%~dpn1.sh" echo Script "%~dpn1.sh" not found & goto :eof
set _CYGBIN=C:\cygwin64\bin
if not exist "%_CYGBIN%" echo Couldn't find Cygwin at "%_CYGBIN%" & goto :eof
:: Resolve ___.sh to /cygdrive based *nix path and store in %_CYGSCRIPT%
for /f "delims=" %%A in ('%_CYGBIN%\cygpath.exe "%~dpn1.sh"') do set _CYGSCRIPT=%%A
for /f "delims=" %%A in ('%_CYGBIN%\cygpath.exe "%CD%"') do set _CYGPATH=%%A
:: Throw away temporary env vars and invoke script, passing any args that were passed to us
endlocal & %_CYGBIN%\mintty.exe -e /bin/bash -l -c 'cd %_CYGPATH%; %_CYGSCRIPT% %*'
На основе этой оригинальной работы.
.sh
файлы в Windows.