2009-07-08 5 views
19

cygwin에서 ./script.sh args를 수행 할 수 있습니다. 그러나이 스크립트 파일은 PowerShell의 메모장에서 열립니다.Windows PowerShell에서 bash 스크립트를 실행하십시오.

실행하려면 무엇이 필요합니까?

+1

Powershell에서 * nix-ish 스크립트가 실행되기를 기대하는 이유는 ... 그들은 완전히 다른 명령 세트와 스크립팅 구문 (powershell 스크립트에는 .ps1 확장 AFAIK 필요)이 있습니다. bash 스크립트를 게시 할 수 있으며 누군가가 PowerShell 버전을 사용하여 도움을 줄 수 있습니다. –

+0

왜냐하면 : 작동합니다. 허용 된 답변을 참조하십시오. – wsorenson

+2

나는 깨달았다. –

답변

15

당신은, 당신이 실행하면 환경 변수 PATHEXT로 확장 .SH를 추가하는 경우, 당신은 쉘을 실행할 수있을 것입니다 * NIXish

sh myscriptfile 
+1

sh ./script.sh가 작동합니다. – wsorenson

+9

정말요? 내가 얻을 'sh'라는 용어는 cmdlet, 함수, 스크립트 파일 또는 작동 가능 프로그램의 이름으로 인식되지 않습니다. – KCD

+19

허용되는 대답에 대한주의 사항은'sh'가 vanilla Powershell에 포함되어 있지 않다는 것입니다. Git을 설치해야했다.이 도구는 PowerShell의'PATH'에 유닉스 도구를 선택적으로 추가한다. sh.exe는 그 중 하나이다. – peplin

4

에 해당 쉘 A * NIX에 대한 인수로 스크립트를 넣어해야 유일한 인수 스크립트 이름을 사용하여 PowerShell을에서 스크립트 : 당신이 당신의 PATH 환경 변수에 포함 된 디렉토리에 스크립트를 저장하는 경우

PS> .\script.sh args 

, 당신은 어디에서 실행, 확장 및 경로를 생략 할 수 있습니다 :

PS> script args 

참고 : sh.exe 또는 다른 * nix 쉘은 .sh 확장자와 연결되어야합니다. Windows에서 강타를 활성화 한 후 윈도우 10에 "기본"솔루션은 지금이

+0

PowerShell을 사용하지 않는 사용자의 경우 PowerShell의 'PATH' 변수? –

+1

Powershell은 다른 모든 프로그램에서 사용하는 것과 동일한 환경 변수를 사용합니다.Windows 시작 메뉴에 "시스템 환경"을 입력하면 환경 변수 편집을 위해 제어판 옵션이 표시되어야합니다. – Rynant

11

, 당신은 bash을 입력하여 bash 쉘을 입력 할 수 있습니다 Bash on Windows

당신은 bash ./script.sh 같은 배쉬 스크립트를 실행하지만, 명심 수

그 C 드라이브는 /mnt/c에 있으며 외부 하드 드라이브는 마운트 할 수 없습니다. 따라서 스크립트를 약간 변경해야 Windows와 호환 될 수 있습니다. /mnt 주변에서 파일을 이동할 때

또한,도 root로, 당신은 여전히 ​​권한이 거부 얻을 수 있지만 / 파일 시스템의 전체 root 힘이있다.

또한 쉘 스크립트가 유닉스 스타일로 포맷되었는지 확인하십시오. 오류가있을 수 있습니다. Example script

관련 문제