Я запускаю .ksh, содержащий вызов awk. awk.exe и его ярлык awk находится в / bin / awk, / bin находится в переменной среды PATH. Но когда я пытаюсь запустить awk, появляется такое сообщение об ошибке:
bash: /usr/bin/awk: no such file or directory
Почему bash не нашел его и в папке / bin?
edit: tar имеет те же права, tar.exe находится в / bin и может быть указан в / usr / bin / точно так же, как awk. Tar работает нормально, а awk - нет.
Определяет ли сценарий ksh явно путь к awk? Это может быть через переменную ( AWK=/usr/bin/awk
, вызванный $AWK
). Попробуйте бежать which awk
и alias awk
, слишком.
редактировать
Процесс установки Cygwin фактически настраивает /usr/bin
как жесткую ссылку на /bin
. (Делать ls -li /usr/
и ls -li /
и вы увидите bin
папки имеют одинаковый номер inode. Кроме того, перейдите в папку / usr / bin в проводнике Windows, и вы увидите, что она пуста.)
Ваш PATH, вероятно, в порядке, но, вероятно, /usr/bin
перед /bin
, поэтому сначала он находит awk по этому маршруту.
Глядя на твою предыдущий вопрос, Я думаю, у вас может быть аналогичная проблема, связанная с ярлыком. Я попробовал переименовать свой awk.exe
к dawk.exe
в Windows, а затем настройте ярлык под названием awk.exe
указывая на это. Бег awk
затем выдает ту же ошибку, что и вы. Однако мне пришлось форсировать эту проблему; Я думаю, что ваша установка Cygwin может быть немного сломана, но сложно сказать, как это сделать. Получаете ли вы похожие ошибки в других двоичных файлах?
Вы должны попробовать echo $ PATH, когда вы находитесь в оболочке korn. Он сообщит вам путь поиска, который используется для поиска программ.
Алан