Windows 명령 프롬프트에서 .sh를 실행하는 방법?


132

Windows 7 명령 프롬프트에서 .sh를 어떻게 실행할 수 있습니까? 이 줄을 실행하려고하면 항상이 오류가 발생합니다.

app/build/build.sh

오류,

'app' is not recognized...

또는,

bash app/build/build.sh

오류,

'bash' is not recognized...

내가 놓친 아이디어가 있습니까?

여기 화면이 나옵니다. 여기에 이미지 설명을 입력하십시오


6
cygwin (아마도)이 필요합니다. Windows에서 SHELL (.sh) 스크립트를 실행하려고하는데 이것이 .shWindows에서 파일을 실행하는 유일한 방법 입니다.
ha9u63ar

답변:


54

오류 메시지는 설치하지 않았 bash거나 설치되어 있지 않다는 것을 나타냅니다 PATH.

구글에서 가장 인기있는 것은 http://win-bash.sourceforge.net/ 이지만 대부분의 Bash 스크립트는 유닉스 계열 환경을 기대한다는 것을 이해해야한다. 따라서 Bash를 설치하면이 특정 사용 시나리오를 위해 특별히 설계된 경우가 아니라면 인터넷에서 찾은 스크립트를 실행할 수 없을 것입니다. 이에 대한 일반적인 해결책은 https://www.cygwin.com/ 이지만 달성하고자하는 것이 무엇인지에 따라 가능한 대안이 많이 있습니다.

Windows가 사용 시나리오의 중심이 아닌 경우 무료 OS (가상화)를 설치하는 것이 가장 간단한 방법 일 수 있습니다.

두 번째 오류 메시지는 Windows가 명목상 슬래시를 디렉토리 구분 기호로 허용하지만이 문맥에서는 스위치 구분 기호로 해석되기 때문입니다. 즉, Windows는 명령 줄을 다음과 같이 구문 분석합니다 app /build /build.sh(또는 Unix 옵션 규칙을 사용 하여 구문 분석 app --build --build.sh). 시도 할 수는 app\build\build.sh있지만 위에서 설명한 상황으로 인해 작동하지 않을 수 있습니다.


1
물론 Windows 10을 사용하면 WSL을 사용하도록 설정하고 Windows 내부에 거의 실제 컴퓨터를 사용할 수 있습니다.
tripleee

147

설치 GIT를 . GIT를 설치하는 동안 옵션을 선택하여 창 컨텍스트 메뉴에 GIT Bash를 추가하십시오. 설치 후 폴더를 마우스 오른쪽 버튼으로 클릭하고 GIT Bash Here(첨부 된 그림 참조) sh 명령을 사용하십시오 (예 :

sh test.sh

여기에 이미지 설명을 입력하십시오


1
그것은 나를 위해 작동하지 않습니다. 명령 프롬프트 창이 열리고 빠르게 닫힙니다.
desbest

27
GIT가 설치되어 있으면 PATH 시스템 변수에 경로를 추가 할 수 있습니다 sh.exe. 제 경우에는 : c:\Program Files\Git\bin. 그런 다음 sh .\script.shPowerShell에서 실행
elshev

1
이것은 2020 년 Windows 10의 매력처럼 작동합니다! 복사 / 붙여 넣기 명령은 나를 위해 작동하지 않지만 그것은 고정 세트로 ctrl-insshift-ins
남 G VU

51

.sh 파일 을 실행하는 가장 일반적인 방법 은 sh 명령을 사용하는 것입니다 .

C:\>sh my-script-test.sh 

다른 좋은 옵션은 CygWin을 설치하는 것입니다

에 에 있습니다 :Windowshome

C:\cygwin64\home\[user]

예를 들어 bash 명령을 my-script-test.sh사용하여 파일을 다음 과 같이 실행합니다.

jorgesys@INT024P ~$ bash /home/[user]/my-script-test.sh 

43
특별한 조치를 취하지 않으면 shWindows 에서 명령을 받지 못할 것 입니다.
user2357112는

1
Ok -1, 명령 줄에서 sh에 액세스하려면 자습서를 추가해야합니까 ???
Jorgesys

41
sh임의의 Windows 명령 프롬프트 에서 입력 하여 작동 할 것으로 예상되는 것처럼 답변이 표시됩니다 .
user2357112는

msys2는 sh 명령을 얻기에 좋은 장소입니다. cmd와 함께 사용하려면 github.com/userzimmermann/MSYS2-cmd를 확인하십시오
Aralox

3
Bash 및 sh명령은 'Bash 설치'설치 옵션을 선택하면 Git4Windows와 함께 설치됩니다.
Joel Ellis

13

당신은 또한 cmder를 사용할 수 있습니다

Cmder는 Windows에 멋진 콘솔 에뮬레이터가 없기 때문에 순수한 좌절감으로 만들어진 소프트웨어 패키지입니다. 그것은 놀라운 소프트웨어를 기반으로하며 Monokai 색상 구성표와 사용자 정의 프롬프트 레이아웃으로 매끄럽고 처음부터 섹시 해 보입니다.

스크린 샷

cmder.net


1
일반적인 유닉스 셸 명령을 포함하는 선택적 애드온 팩이 제공되는 것처럼 보이지만 기본 패키지는을 대신하는 것으로 보입니다 cmd.
tripleee

5

Windows 10 Anniversary Update에서는 Windows의 우분투에서 bash로 쉘 명령을 실행하는 것이 훨씬 쉽습니다.

내 x-wrt r7000 넷기어 라우터에 대해 내 지역을 설정하려고했지만 Windows의 우분투에서 bash를 사용하여 다음과 같은 효과가 있음을 발견했습니다.

ssh admin@192.168.1.1 < /mnt/c/ccode-eu.sh

실행할 수 있습니다. 그러나 완전히 다른 환경입니다.
TamusJRoyce

4

Windows의 새로운 기능-Windows에서 우분투에서 bash 실행-빌드 회의 후 Windows 10 "내부자"빌드에서 사용 가능 :

https://blogs.windows.com/buildingapps/2016/03/30/run-bash-on-ubuntu-on-windows/


멋지지만 어떻게 sh파일 을 실행 bash합니까? 내가 시도하면 창이 깜박이고 사라집니다. 파일을 열린 bash 창으로 드래그 앤 드롭하면 경로가 발견되지 않았다고 표시됩니다 (다른 규칙을 사용하기 때문에).
m93a

요즘 Windows에서 .sh 파일을 실행할 수 있습니까? 지금 시도해 볼 수는 없지만 관심이 있습니다.
JesusMurF

1
나는 그것을 직접 시도하지는 않았지만 Windows에서 sh를 실행하는 방법에 대한 Microsoft의 가이드가 있습니다. docs.microsoft.com/en-us/windows/wsl/install-win10
claudiu.nicola

@ m93a 우분투 터미널 창 bash path/to/script에서 스크립트를 실행합니다. sh우분투 에도 확실히 있습니다 . 스크립트에 적절한 shebang 및 권한이있는 경우 shebang에 path/to/script지정된 rnterpreter를 사용하여 스크립트를 실행하십시오.
tripleee

4

개인적 으로이 배치 파일을 사용했지만 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% %*'

독창적 인 작업을 기반으로 합니다 .


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.