Cygwin Diff始终返回退出代码57

Cygwin Diff始终返回退出代码57,cygwin,diff,Cygwin,Diff,我的Cygwin上的diff实用程序总是返回57的退出代码,无论文件是否匹配、不匹配或不存在 我已成功安装了diffutils: $ cygcheck -c diffutils Cygwin Package Information Package Version Status diffutils 3.2-1 OK $ which diff /usr/bin/diff 您的Cygwin安装中一定有问题,因为Cygw

我的Cygwin上的diff实用程序总是返回57的退出代码,无论文件是否匹配、不匹配或不存在

我已成功安装了diffutils:

$ cygcheck -c diffutils
Cygwin Package Information
Package              Version        Status
diffutils            3.2-1          OK

$ which diff
/usr/bin/diff

您的Cygwin安装中一定有问题,因为Cygwin版本的
diff
中甚至没有返回退出代码57的代码。它只使用0、1和2。这意味着其他代码正在执行退出操作,这是非常可疑的

我首先尝试强制重新安装
diffutils
及其依赖项、
libintl8
libiconv2
。您将在Cygwin的
setup.exe
中的Libs类别中找到这两个库。单击“选择软件包”屏幕第三列中的值,直到显示“重新安装”。(当您第一次进入此屏幕时,应该是“保留”。如果是其他内容,这可能是出错原因的线索。)


如果这不能解决问题,我会怀疑。

你怎么知道退出代码是57?您是否在执行
diff
命令后立即执行
echo$?
?让我们看看你到底在做什么。(顺便说一句,它对我来说很好。)是的,我在
diff
命令之后立即执行
echo$?
。好的,当您输入此命令时,需要100%清楚:
diff/dev/null/dev/null;echo$?
它打印57?,而您没有将
diff
定义为别名或函数(
哪个
不会检测到它)?假设您使用的是bash,
type-a diff
的输出是什么?下面是我得到的输出
$type-a diff-is/usr/bin/diff-is/bin/diff
我没有得到重新安装选项。在我再次安装Diffutils之后,它现在可以工作了。谢谢大家的帮助。