在linux上运行sh文件提示坏的解释器-没有那个文件或目录解决

3次阅读

共计 526 个字符,预计需要花费 2 分钟才能阅读完成。

上个星期我写了一个定时器脚本,当时当我在 Linux 上运行时提示:

-bash: /data/www/myblog/curl.sh: /bin/bash^M: 坏的解释器: 没有那个文件或目录 

之前我在学习 linux 命令时就遇到过此类的问题,当时记录的时候只记录在具体出现的问题当中,找了半天终于找到,感觉找起来十分的麻烦,所以这里我把此问题单独拿出来记录下,方便下次出现此类问题可以快速的查找

问题原因:

当我们在 window 下编写脚本然后在上传到 Linux 上时,由于 window 上换行显示的为 nr,然而在 linux 上换行显示应该为 n,所以在 Linux 下无法读取从 window 上传来的脚本

问题解决:

将 r 替换成空,即如下:

sed -i 's/\r$//' /data/www/myblog/curl.sh #/data/www/myblog/curl.sh 表示你的脚本文件

所以这里总结下当我们需要运行从 window 上传来的脚本步骤

chmod a+x /data/www/myblog/curl.sh  #使脚本具有执行权限
sed -i 's/\r$//' /data/www/myblog/curl.sh #解决 window 脚本报错问题
/data/www/myblog/curl.sh #运行脚本 

正文完
 0