通过Jenkins脚本执行Shell命令时出现“No such file or directory”错误
Jenkins脚本执行提示文件不存在的排查方案
1. 修复路径格式
Cygwin bash对Windows风格路径的解析可能出错,尝试两种调整方式:
- 改用Cygwin风格路径:
/cygdrive/c/ProgramData/Jenkins/.jenkins/workspace/Pytest_test/test.sh - 使用相对路径:如果脚本执行时的工作目录是项目根目录,直接写
./test.sh
2. 检查文件权限
在Jenkins的直接Shell命令中执行以下命令,确认Jenkins用户对文件有读取和执行权限:
ls -l /cygdrive/c/ProgramData/Jenkins/.jenkins/workspace/Pytest_test/test.sh
如果权限不足,执行chmod +x /cygdrive/c/ProgramData/Jenkins/.jenkins/workspace/Pytest_test/test.sh添加执行权限
3. 转换脚本换行符
Windows下创建的脚本默认是CRLF换行符,Cygwin bash可能无法识别,执行转换命令:
dos2unix /cygdrive/c/ProgramData/Jenkins/.jenkins/workspace/Pytest_test/test.sh
4. 确认工作目录
在脚本的第一行添加pwd命令,查看脚本实际执行时的工作路径,若路径不符,调整test.sh的引用路径为绝对路径
5. 核对文件名大小写
Cygwin环境大小写敏感,确保脚本中写的文件名(如test.sh)和实际文件名完全一致,避免因大小写差异导致找不到文件
内容的提问来源于stack exchange,提问作者lovefortech
相关产品推荐
相关产品推荐

