다양한 방법을 사용하여 GitHub에서 원격 Bash 스크립트를 실행하면 실패합니다. Windows 10으로 인해 발생할 수 있습니다.

다양한 방법을 사용하여 GitHub에서 원격 Bash 스크립트를 실행하면 실패합니다. Windows 10으로 인해 발생할 수 있습니다.

나는 이것을 가지고있다원격 배시 스크립트나는 GitHub(다른 버전)에서 이 줄을 한 줄씩 성공적으로 실행했습니다.

테스트할 때마다 모든 줄을 복사하여 붙여넣는 것이 매우 답답하기 때문에 다음을 통해 원격 Bash 스크립트를 실행해 보았습니다.원형을 사용 curl하지만 다양한 시도에서 실패합니다.

bash <(curl -s https://raw.githubusercontent.com/benqzq/uncwe/master/install.sh)

또는

curl -s https://raw.githubusercontent.com/benqzq/uncwe/master/install.sh | bash

약 3초 후에 두 가지 모두 다음 오류와 함께 완전히 실패합니다.

/dev/fd/63: 7행: $'\r': 명령을 찾을 수 없습니다.

나는 모든 캐리지 리턴을 번역해야 할 수도 있다고 추측하여 다음을 시도했습니다.

curl -s https://raw.githubusercontent.com/benqzq/uncwe/master/install.sh | tr -d '\r' | bash

이로 인해 스크립트가 부분적으로 실행되었습니다. 예를 들어 , , , 및 기타 일부 작업은 제대로 작동하지만 apt-get install/ exportgit clone선행 탭 rm -rf ${repo}/.git/이 있는 일부 파일의 처리는 올바르게 처리되지 않습니다.wgetunzip

GitHub GUI가 코드의 일부 부분에서 선행 공백을 탭에서 공백으로 또는 그 반대로 변경할 수 있다고 생각했기 때문에 모든 선행 공백을 탭으로 변경해 보았습니다.

curl -s https://raw.githubusercontent.com/benqzq/uncwe/master/install.sh | sed "s/^ */\t/" | tr -d '\r' | bash

결과는 이전과 같은 것 같습니다.

이 4가지 방법이 실패했으니 또 어떤 방법이 가능한지 궁금합니다. 불행히도 Google에서 다른 예를 찾지 못했습니다.

아마도 저는 일반적으로 Windows 10에서 작업하고 캐리지 리턴이 모든 파일에 추가되기 때문에 이러한 문제가 발생할 수 있습니다. 그러나 코드 예제에서 "번역"이 실행 오류를 일으키는 이유가 무엇인지 물을 수도 있습니다.

답변1

를 이용해서 해결할 수 있었습니다 dos2unix.

나는 그것을 설치했다:

sudo apt-get update
sudo apt-get install dos2unix

그런 다음 를 실행하여 curl콘텐츠를 stdout. stdout에서 무언가를 파이핑한 dos2unix다음 이를 실행하기 위해 파이핑하여 변경합니다 bash.

sudo curl -s https://raw.githubusercontent.com/benqzq/ulcwe/master/install.sh | dos2unix | bash

관련 정보