Cygwin gawk는 명시적으로 호출될 때 파이프되지 않습니다.

Cygwin gawk는 명시적으로 호출될 때 파이프되지 않습니다.

그것이 제가 생각할 수 있는 가장 좋은 설명입니다. 조금 난해하다면 사과드립니다.

Win 10, Build 16299에 cygwin을 설치했지만 비관리자 옵션으로 설치했습니다. 이 PC에는 관리자로 설치할 수 있는 옵션이 없습니다.

다음 줄을 실행하면 PATH를 사용하여 gawk를 찾을 때 실행되지만 실행 파일을 찾을 위치를 명시적으로 알려줄 때는 실행되지 않습니다. 어떤 제안이 있으십니까?

gawk "BEGIN { print \"echo Hello mum\" | \"./cygwin/sh\" }"
Hello mum

.\cygwin\gawk "BEGIN { print \"echo Hello mum\" | \"./cygwin/sh\" }"
gawk: cmd. line:1: fatal: can't open pipe `./cygwin/sh' for output (No such file or directory)

cygwin 디렉토리는 \cygwin64\bin\에서 복사된 모든 dll과 함께 cygwin 명령의 하위 집합입니다.

답변1

당신이 `/home/user' 디렉토리에서 명령을 실행한다고 가정하자.

실행하면 gawk$CWD(현재 작업 디렉터리)가 /home/user.

실행하면 .\cygwin\gawk$CWD가 /home/user/cygwin. 이 경우에는 ./cygwin/sh을 가리킵니다 /home/user/cygwin/cygwin.

이것을 시도해 봅시다:

.\cygwin\gawk "BEGIN { print \"echo Hello mum\" | \"./sh\" }"

관련 정보