-bash: ./run.sh: /bin/bash^M: bad interpreter: No such file or directory 报错解决方法 萧尐之空 2021-11-29 系统/运维 238 0 百度已收录 阿里云新用户专享 领取限量2000元代金券 限量爆款选购 2核8G内存5M带宽3000元/3年 学生用户专属 18-24岁用户直享¥9.5/月 全民上云优选 新老用户均可购买低至17元/月 企业级应用一折起购 稳定,可靠企业级独享实例 多产品一键采购 购物车采购可减5000元 ECS 云服务器 SWAS 轻量应用服务器 RDS 云数据库 Redis 云数据库 CDN 内容分发 OSS 对象存储 SLB 负载均衡 NAT 网关 DNS 云解析 MAIL 企业邮箱 WAF 应用防火墙 DDoS 高防 SMS 短信包 MK 云市场 XIN 心选 IM 商标注册 JZ 自营建站 shell脚本文件是dos格式,即每一行结尾以\r\n来标识,而unix格式的文件行尾则以\n来标识。 查看脚本文件是dos格式还是unix格式的几种办法。 (1)cat -A filename 从显示结果可以判断,dos格式的文件行尾为^M$,unix格式的文件行尾为$。 (2)od -t x1 filename 如果看到输出内容中存在0d 0a的字符,那么文件是dos格式,如果只有0a,则是unix格式。 (3)vi filename打开文件,执行 : set ff,如果文件为dos格式在显示为fileformat=dos,如果是unxi则显示为fileformat=unix。 解决方法 方法一: [root@localhost bin]# dos2unix run.sh dos2unix: converting file run.sh to UNIX format ... 方法二: vim mysell.sh :get fileformat #查看本文件的格式 :set fileformat=unix #设置文件为unix :wq #保存 方法三: #使用sed命令,直接替换结尾符为unix格式 sed -i "s/\r//" run.sh 或者 sed -i "s/^M//" run..sh 上一篇: php优化的常见参数 下一篇: Java项目CPU高排除
发表评论