以下命令字符串在Cygwin32
中正常运行,但在Cygwin64
下不再有效。有没有人知道为什么?所有包都按预期安装。
$svn status | sort | cut -c2- | xargs cksum
: No such file or directory
我在Windows 7 x64上运行
答案 0 :(得分:0)
这种错误通常是由具有Windows样式行结尾的脚本引起的。
在Unix中,在Cygwin下,行的结尾由单个LF字符表示。在Windows中,它由CR LF对指示。外壳不识别CR(回车)字符作为行尾标记;这只是另一个角色。
因此,如果您的脚本有如下行:
some_command
shell会将其视为
some_commandCR
其中CR
表示返回字符。它将打印一条错误消息,如:
some_commandCR: command not found
其中,因为打印回车符将光标发送回行的开头,将显示为:
: command not found
这不是完全您收到的错误消息,但根本原因是相同的。
您可以使用dos2unix
命令修复行结尾。请务必先阅读该手册页。与大多数Unix命令不同,它会替换其输入文件,而不是将过滤后的输出写入stdout。