我在名为backup.sh
的文件中有这行代码,位于/ backup中(所以路径是/backup/backup.sh)
代码是:
#!/bin/bash
zip -r /backup/Backup-$(date +%Y-%m-%d) /ftb
该文件具有权限777.但是,它出错:
-bash:/backup/backup.sh:/ bin / bash ^ M:错误的解释器:没有这样的文件或目录
/ backup和/ ftb都存在。我以root用户身份运行它。
答案 0 :(得分:3)
在其上运行dos2unix或类似的实用程序以删除回车符(^ M)。
此消息表明您的文件具有dos样式的lineendings:
-bash: /backup/backup.sh: /bin/bash^M: bad interpreter: No such file or directory
像dos2unix
这样的工具会修复它:
dos2unix <backup.bash >improved-backup.sh
或者,如果没有安装此类实用程序,您可以使用translate完成相同的操作:
tr -d "\015\032" <backup.bash >improved-backup.sh
至于那些角色是如何到达那里的,@ Madhehisticist有一些好评。