sh 脚本名称 -sh: /bin/sh^M: 错误的解释器: 没有这样的文件或目录

sh 脚本名称 -sh: /bin/sh^M: 错误的解释器: 没有这样的文件或目录

我有以下提示

[/share/registrazioni/Script] # cat delete_7gg.sh
#!/bin/sh
find /share/registrazioni/ -type f -mtime +7 -delete
[/share/registrazioni/Script] # which sh
/bin/sh
[/share/registrazioni/Script] # chmod +x delete_7gg.sh
[/share/registrazioni/Script] # ./delete_7gg.sh
-sh: ./delete_7gg.sh: /bin/sh^M: bad interpreter: No such file or directory

为什么我会得到 /bin/sh^M: badterpreter: No such file or directory ?我用 vi 编写了脚本。我在 qnap qts 4.3.6 中制作了脚本,我可以通过 ssh 访问它。该脚本应该简单地删除超过 7 天的文件。我无法安装dos2unix,因为系统没有包管理器。我只是希望制作一个脚本并将其放入 cron 中。但我收到了这个错误。

答案1

你似乎有Windows风格的行结尾(CRLF,^M^J)而不是unix风格的行结尾(LF,^J)。尝试dos2unix

dos2unix delete_7gg.sh

然后照常运行

来自男人:

dos2unix - DOS/MAC 到 UNIX 文本文件格式转换器

相关内容