cygwin,PATH 问题?

cygwin,PATH 问题?

我运行了一个包含 awk 调用的 .ksh。awk.exe 及其快捷方式 awk 位于 /bin/awk 中,/bin 位于 PATH 环境变量中。但是当我尝试启动 awk 时,出现了以下错误消息:

bash: /usr/bin/awk: no such file or directory

为什么 bash 没有在 /bin 文件夹中寻找它?

编辑:tar 具有相同的权限,tar.exe 位于 /bin 中,并且可以在 /usr/bin/ 中列出,与 awk 完全相同。Tar 工作正常,而 awk 则不行。

答案1

ksh 脚本是否明确定义了 awk 的路径? 可以通过变量 ( AWK=/usr/bin/awk,由 调用$AWK) 来实现。 也尝试运行which awkalias awk

编辑

Cygwin 安装过程实际上设置/usr/bin为 的硬链接/bin。(执行ls -li /usr/ls -li /,您会看到bin文件夹具有相同的 inode 编号。此外,在 Windows 资源管理器中浏览 /usr/bin 文件夹,您会看到它是空的。)

您的 PATH 可能没有问题,但可能/usr/bin之前就已经存在/bin,因此它首先通过该路线找到 awk。

看着你的上一个问题,我认为您可能在这里遇到了类似的快捷方式相关问题。我尝试在 Windows 中重命名我的awk.exedawk.exe然后设置awk.exe指向它的快捷方式。awk然后运行,结果出现了您看到的相同错误。不过,我不得不强制解决这个问题;我认为您的 Cygwin 安装可能有点问题,但很难说是怎么回事。您是否从其他二进制文件中遇到过类似的错误?

答案2

当您处于 korn shell 中时,您应该尝试 echo $PATH。它将告诉您用于查找程序的搜索路径。

艾伦

相关内容