Windows 7 명령 프롬프트에서 .sh를 어떻게 실행할 수 있습니까? 이 줄을 실행하려고하면 항상이 오류가 발생합니다.
app/build/build.sh
오류,
'app' is not recognized...
또는,
bash app/build/build.sh
오류,
'bash' is not recognized...
내가 놓친 아이디어가 있습니까?
여기 화면이 나옵니다.
답변
오류 메시지는 설치하지 않았 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
있지만 위에서 설명한 상황으로 인해 작동하지 않을 수 있습니다.
답변
설치 GIT를 . GIT를 설치하는 동안 옵션을 선택하여 창 컨텍스트 메뉴에 GIT Bash를 추가하십시오. 설치 후 폴더를 마우스 오른쪽 버튼으로 클릭하고 GIT Bash Here
(첨부 된 그림 참조) sh 명령을 사용하십시오 (예 :
sh test.sh
답변
.sh 파일 을 실행하는 가장 일반적인 방법 은 sh 명령을 사용하는 것입니다 .
C:\>sh my-script-test.sh
에 에 있습니다 :Windows
home
C:\cygwin64\home\[user]
예를 들어 bash 명령을 my-script-test.sh
사용하여 파일을 다음 과 같이 실행합니다.
jorgesys@INT024P ~$ bash /home/[user]/my-script-test.sh
답변
당신은 또한 cmder를 사용할 수 있습니다
Cmder는 Windows에 멋진 콘솔 에뮬레이터가 없기 때문에 순수한 좌절감으로 만들어진 소프트웨어 패키지입니다. 그것은 놀라운 소프트웨어를 기반으로하며 Monokai 색상 구성표와 사용자 정의 프롬프트 레이아웃으로 매끄럽고 처음부터 섹시 해 보입니다.
답변
Windows 10 Anniversary Update에서는 Windows의 우분투에서 bash로 쉘 명령을 실행하는 것이 훨씬 쉽습니다.
내 x-wrt r7000 넷기어 라우터에 대해 내 지역을 설정하려고했지만 Windows의 우분투에서 bash를 사용하여 다음과 같은 효과가 있음을 발견했습니다.
ssh admin@192.168.1.1 < /mnt/c/ccode-eu.sh
답변
Windows의 새로운 기능-Windows에서 우분투에서 bash 실행-빌드 회의 후 Windows 10 “내부자”빌드에서 사용 가능 :
https://blogs.windows.com/buildingapps/2016/03/30/run-bash-on-ubuntu-on-windows/
답변
개인적 으로이 배치 파일을 사용했지만 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% %*'