我运行一个包含awk调用的.ksh。 awk.exe和他的快捷方式awk位于/ bin / awk中,/ bin位于PATH环境variables中。 但是当我尝试启动awk时,我有这个错误消息:
bash: /usr/bin/awk: no such file or directory
为什么bash在/ bin文件夹中找不到它?
编辑:tar具有相同的权限,tar.exe位于/ bin中,可以在/ usr / bin /中列出,与awk完全相同。 焦油工作正常,而awk没有。
ksh脚本是否明确定义了awk的path? 它可以通过一个variables( AWK=/usr/bin/awk ,由$AWK调用)。 尝试运行which awk和alias awk 。
编辑
Cygwin安装过程实际上将/usr/bin为/usr/bin的硬链接。 (Do ls -li /usr/和ls -li / ,你会看到bin文件夹有相同的inode编号,并且在windows资源pipe理器中浏览到/ usr / bin文件夹,你会发现它是空的。
你的PATH很可能是好的,但可能在/usr/bin之前有/usr/bin /bin ,所以它先通过这个pathfindawk。
看看你以前的问题 ,我想你可能在这里有一个类似的快捷方式相关的问题。 我尝试将我的awk.exe重命名为windows中的dawk.exe ,然后设置一个名为awk.exe的快捷方式指向它。 运行awk然后给我同样的错误,你可以看到。 不过,我不得不强迫这个问题。 我认为你的Cygwin安装可能有点坏,但很难说如何。 你从其他二进制文件中得到类似的错误吗?
当你在korn shell中时,你应该试试echo $ PATH。 它会告诉你正在用来查找程序的searchpath。
艾伦