1
5
我也有同样的问题,从上面的答案中不清楚问题是什么,或者解决方案是什么,但是我想我现在明白了。 显然,windows换行符的编码略有不同。虽然cygwin可以用unix格式编码,但我使用windows文本编辑器(Notepad++)编写脚本,默认格式是windows CRLF编码。Notepad++可以为unix重新配置为默认格式。我的同事在linux或mac机器上生成的所有脚本都可以正常工作,但随后我会在windows中编辑它们,直到我尝试在linux机器上运行一个脚本,我才意识到可能会出现问题。 首先,这可以在cygwin或bash中诊断为:
其次,cygwin有一个简单的转换器:
你可以检查一下第一步的效果。 然后我所有的脚本都会像往常一样运行。 |
2
3
如果你把shebang改成
|
3
2
我已经解决了这个问题,我将自己回答,以确保完整。
登录Linux机器的原始新用户还将其包含core.autocrlf=true的Cygwin.gitconfig复制到新帐户。然后他们克隆了包含有问题的python脚本的git存储库。我没有在最初的问题中包含这些信息,因为我根本没有建立联系。我不想通过解释那些看起来无关紧要的事情来混淆这个问题。事后诸葛亮? 无论如何,这使得所有的脚本都是clone-DOS格式的,这就解释了为什么没有任何东西能适合这个用户。它还解释了为什么错误消息没有用处,因为^M回车符将光标返回到没有换行符的行的开头,然后“没有这样的文件或目录”将覆盖消息的有用部分。当我在没有权限的情况下设置目录路径时,我发现了这一点,并收到了损坏的消息“permission deniedn”-那个流氓让我思考。
谢谢大家的回复。 |
lonix · 使用sed从JSON中提取非贪婪正则表达式 1 年前 |
g00dds · 如何在bash中从文件中的每一行解码base64? 2 年前 |
Paul · Bash wait命令忽略指定的进程ID 2 年前 |
RafaÅ G. · 如何使用从文件读取的多行参数运行ssh? 2 年前 |
Priya · 在shell脚本中多次运行python脚本 2 年前 |