"/ bin/bash ^ M:错误的解释器:没有这样的文件或目录"从cron作业执行bash脚本时出错

cha*_*age -1 mysql linux bash cron

Restore_DB.sh: -

#!/bin/bash
mysql -u user -ppassword DB_name < /home/A/B/SQL_File.sql
Run Code Online (Sandbox Code Playgroud)

我使用上面的代码从cron作业恢复MySQL数据库,但我收到了波纹管错误

/usr/local/cpanel/bin/jailshell: /home/A/B/Restore_DB.sh: /bin/bash^M: bad interpreter: No such file or directory
Run Code Online (Sandbox Code Playgroud)

这是我使用的cron作业命令: -

/home/A/B/Restore_DB.sh
Run Code Online (Sandbox Code Playgroud)

ste*_*eak 5

尝试dos2unix可以修复您的文件:

$ dos2unix /home/A/B/Restore_DB.sh
Run Code Online (Sandbox Code Playgroud)

如果dos2unix尚不存在,您可以使用您的发行版的软件包管理器进行安装.

问题是换行编码,Windows/DOS编码换行的方式与Unix不同.

  • Unix换行序列:( \n仅换行符)
  • Windows换行序列:( \r\n2个字符,回车和换行)

请参阅https://en.wikipedia.org/wiki/Newline#Representations