Cygwin gawk no habla cuando se le llama explícitamente

Cygwin gawk no habla cuando se le llama explícitamente

Esa es la mejor descripción que se me ocurre, disculpas si es un poco esotérica.

Tengo cygwin instalado en Win 10, compilación 16299 pero está instalado con la opción de no administrador; No hay ninguna opción para instalar como administrador en esta PC.

Al ejecutar la siguiente línea, se ejecuta cuando se encuentra gawk usando la RUTA, pero no cuando le digo explícitamente dónde encontrar el ejecutable. ¿Alguna sugerencia?

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)

El directorio cygwin es un subconjunto de comandos cygwin junto con todos los archivos dll copiados de \cygwin64\bin\

Respuesta1

Supongamos que ejecuta el comando desde el directorio `/home/user'.

Cuando ejecuta gawk, $CWD (directorio de trabajo actual) se establece en /home/user.

Cuando ejecuta .\cygwin\gawk, $CWD se establece en /home/user/cygwin. En este caso ./cygwin/shapunta a /home/user/cygwin/cygwin.

Intentemos esto:

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

información relacionada