这个错误 : No such file or directory,通常不是脚本本身不存在,而是脚本首行解释器(shebang)或路径问题导致的。

1、检查脚本路径和文件名

ls -l /home/demo.sh

 

  • 确认文件确实存在

  • 确认文件名拼写完全一致

2、检查首行 shebang

你脚本首行应该是:

#!/usr/bin/env bash

问题可能出在:

  1. 换行符:如果脚本是在 Windows 下编辑过,会有 \r\n,Linux bash 识别不了

  2. 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

 

作者 admin

百度广告效果展示