大牛?无他,唯手熟尔!

$'\r': 未找到命令 : 没有那个文件或目录之解决

2015-07-14 15:49:49来源:caogenjava阅读[4510]评论[1]
摘要:场景:在windows系统下写了一个tomcat重启shell,然后上传到linux中,执行后报错:$'\r': 未找到命令 : 没有那个文件或目录。网上资料搜索后,找到原因:主要原因是shell脚本是我在windows下编辑然后上传到linux系统里执行的。.sh文件的格式为dos格式。而linux只能执行格式为unix格式的脚本。

本文由草根java提供,转载请注明出处https://www.caogenjava.com/detail/65.html

关键词:$'\r': 未找到命令 : 没有那个文件或目录;dos格式转unix格式

场景:在windows系统下写了一个tomcat重启shell,然后上传到linux中,执行后报错:$'\r': 未找到命令 : 没有那个文件或目录。

网上资料搜索后,找到原因:

主要原因是shell脚本是我在windows下编辑然后上传到linux系统里执行的。.sh文件的格式为dos格式。而linux只能执行格式为unix格式的脚本。因为在dos/window下按一次回车键实际上输入的是“回车(CR)”和“换行(LF)”,而Linux/unix下按一次回车键只输入“换行(LF)”,所以修改的sh文件在每行都会多了一个CR,所以Linux下运行时就会报错找不到命令。

所以,解决问题之道,就是把dos文件格式转换为unix格式。


方法1:使用dos2unix命令来转换。


第一步:安装dos2unix命令,如果已经安装,跳过该步骤

centos:yum install dos2unix

ubuntu:sudo apt-get install dos2unix


第二步:转换格式

dos2unix /usr/apache-tomcat/bin/restart.sh

dos2unix: converting file /usr/apache-tomcat/bin/restart.sh to Unix format ...



方法2:使用notepad++


在windows系统下使用notepad++编辑该sh文件,双击文件右下角编码区域选择"转换为UNIX格式",如下图: 

QQ截图20150714113850.png



然后再执行一下,ok,可以正常执行了。


除非注明,文章均为草根java原创,转载请注明本文地址: https://www.caogenjava.com/detail/65.html

上一篇:POI合并单元格时CellRangeAddress类提示过时之解决        下一篇:彻底解决winrar弹出广告的恶心问题
网友评论,共1 发表评论
  • hhhhh  2017-07-25 14:16:27
    写得真好
昵称:
评论:
验证码: 刷新验证码