development

Windows에서 Cygwin을 통해 쉘 스크립트 실행

big-blog 2020. 12. 10. 20:52
반응형

Windows에서 Cygwin을 통해 쉘 스크립트 실행


Linux 컴퓨터에서 실행하는 데 사용되는 많은 셸 스크립트가 있습니다. 이제 Windows로 전환했으며 여기에서 이러한 스크립트를 실행해야합니다. 나는이 Cygwin에서가 설치되어 있지만 Cygwin에서 사용하여 스크립트 실행을 만들 수있는 방법이 있지만, 호출은 Windows 배치에서 이루어집니다 ?


확실한. 내 (꽤 바닐라) Cygwin에서 설정에 bashc:\cygwin\bin내가 실행할 수 있도록 bash스크립트 (예를 들어 testit.sh같은 명령을 사용하여 Windows 배치 파일을) :

C:\cygwin\bin\bash testit.sh

... .bat명령 줄에서 입력 할 수있는 것처럼 쉽게 파일에 포함될 수 있으며 동일한 효과를냅니다.


한 가지 더- \r\n줄 끝 을 생성하는 일부 Windows 텍스트 편집기에서 쉘 스크립트를 편집 한 경우 cygwin의 bash는 이러한 \r. dos2unix testit.sh스크립트를 실행 하기 전에 실행하십시오.

C:\cygwin\bin\dos2unix testit.sh
C:\cygwin\bin\bash testit.sh

Windows에서 Notepad ++ 편집기에 액세스 할 수있는 경우이 문제를 쉽게 해결할 수있는 기능이 있습니다.

  1. Notepad ++에서 오류를 제공하는 파일을 엽니 다.
  2. "편집"메뉴에서 "EOL 변환"을 선택하십시오.
  3. "UNIX / OSX 형식"에 대한 옵션이 있습니다. 해당 옵션을 선택하십시오.
  4. 파일을 다시 저장하십시오.

나는 이것을했고 그것은 내 문제를 해결했습니다.

도움이 되었기를 바랍니다!

http://danieladeniji.wordpress.com/2013/03/07/microsoft-windows-cygwin-error-r-command-not-found/ 에서 자세히 알아보십시오.


디렉토리 아래의 모든 파일에 대해 dos2unix 수정을 적용 할 수 있다는 것을 추가하고 싶었습니다. 스크립트를 '수정'해야 할 때 많은 시간을 절약 할 수 있었기 때문입니다.

find . -type f -exec dos2unix.exe {} \;

나는 Roman의 대답에 대한 주석으로 할 것이지만 아직 주석을 달 수는 없습니다.


스크립트 파일 이름에 항상 .sh를 포함해도 괜찮다면 Cygwin 및 Unix (Macbook)에 대해 동일한 스크립트를 유지할 수 있습니다. 예를 들면 다음과 같습니다

.
1. 항상 .sh를 스크립트 파일 이름에 포함합니다 (예 : test1.sh)
. 2. test1.sh는 예를 들어 다음과 같습니다. 3. Cygwin이 설치된 Windows에서 "test1.sh"를 입력하여 4 를 실행합니다. . Unix에서는 "test1.sh"를 입력하여
#!/bin/bash echo '$0 = ' $0 echo '$1 = ' $1 filepath=$1


참고 : Windows에서는 파일 탐색기를 사용하여 다음 작업을 한 번 수행해야합니다.
1. 파일 탐색기를 엽니 다.
2. test1.sh와 같이 확장명이 .sh 인 파일을 마우스 오른쪽 버튼으로 클릭합니다.
3. 연결 프로그램 ...- > 선택 sh.exe
이후 Windows 10은 sh.exe로 모든 .sh 파일을 실행하는 것을 기억합니다.

참고 :이 방법을 사용하면 실행을 위해 스크립트 파일 이름 앞에 bash를 추가 할 필요가 없습니다.


기존 답변은 모두 DOS 콘솔 창 에서이 스크립트를 실행하는 것 같습니다.

이는 허용 될 수 있지만 예를 들어 색상 코드 (텍스트 색상 변경)가 작동하지 않고 다음과 같이 인쇄됩니다.

"[032mGroovy [0m"] 항목이 없습니다.

얼마 전에이 솔루션을 찾았으므로 mintty.exe표준 Cygwin 유틸리티인지 아니면 setup프로그램을 실행해야하는지 확실하지 않지만 다음과 같이 실행합니다.

D:\apps\cygwin64\bin\mintty.exe -i /Cygwin-Terminal.ico  bash.exe .\myShellScript.sh

... 이렇게하면 스크립트가 Windows DOS 콘솔 대신 Cygwin BASH 콘솔에서 실행됩니다.

참고 URL : https://stackoverflow.com/questions/15736898/running-a-shell-script-through-cygwin-on-windows

반응형