这个错误 : No such file or directory
,通常不是脚本本身不存在,而是脚本首行解释器(shebang)或路径问题导致的。
1、检查脚本路径和文件名
ls -l /home/demo.sh
-
确认文件确实存在
-
确认文件名拼写完全一致
2、检查首行 shebang
你脚本首行应该是:
#!/usr/bin/env bash
问题可能出在:
-
换行符:如果脚本是在 Windows 下编辑过,会有
\r\n
,Linux bash 识别不了 -
bash 不存在:
/usr/bin/env bash
不存在或不在 PATH
解决方法
修复换行符:
# 安装 dos2unix(如果没安装)
sudo yum install dos2unix -y # CentOS/RHEL
sudo apt install dos2unix -y # Ubuntu/Debian
# 转换脚本
dos2unix /home/cronjobs/backup_scripts/backup_lan.sh
确认 bash 存在:
which bash
# 通常输出 /bin/bash
如果 /usr/bin/env bash
不存在,可改为直接指向 bash:
#!/bin/bash
3、确认脚本可执行权限
chmod +x /home/demo.sh
4、测试执行
/home/demo.sh