Это лучшее описание, которое я могу придумать. Извините, если оно немного эзотерично.
У меня установлен Cygwin на Win 10, сборка 16299, но он установлен без прав администратора; на этом ПК нет возможности установить его с правами администратора.
При выполнении следующей строки она запускается, когда gawk найден с использованием PATH, но не когда я явно указываю ему, где найти исполняемый файл. Есть предложения?
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 представляет собой подмножество команд cygwin вместе со всеми библиотеками dll, скопированными из \cygwin64\bin\
решение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\" }"