Назад | Перейти на главную страницу

cygwin, проблема с PATH?

Я запускаю .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. Он сообщит вам путь поиска, который используется для поиска программ.

Алан