linux执行shell脚本时报错:解释器错误,没有那个文件和目录
问题背景最近在构建虚拟机服务器集群时,由于需要在节点之间相互传输、分发文件,因此相比手动挨个传输,通过shell脚本的方式效率会更高。但是在window本地使用Notepad++编辑完上传至虚拟机后一直报错解释器错误,没有那个文件和目录。仔细检查文件路径以及脚本编写,并未发现错误。问题原因经查阅资料后得到,shell脚本编写时的系统与运行时的系统不一致。我是在windows系统下编写,linux系
·
问题背景
最近在构建虚拟机服务器集群时,由于需要在节点之间相互传输、分发文件,因此相比手动挨个传输,通过shell脚本的方式效率会更高。但是在window本地使用Notepad++编辑完上传至虚拟机后一直报错解释器错误,没有那个文件和目录。仔细检查文件路径以及脚本编写,并未发现错误。
问题原因
经查阅资料后得到,shell脚本编写时的系统与运行时的系统不一致。我是在windows系统下编写,linux系统下运行。windows下的.sh文件的格式为dos格式,和Linux只能执行unix格式的脚本。
在windows/dos格式中,每按下一次回车键实际上输入了“回车(CR)和换行(LF)”,而Linux/unix按下回车键只输入“换行(LF)”。
解决方法
1.用vi打开.sh文件
2.在vi命令模式中使用命令:set off
3.将文件格式从dos修改至unix,使用命令:set ff=unix
4.退出,重新执行脚本
参考链接:https://blog.csdn.net/h363659487/article/details/79813178
更多推荐
已为社区贡献3条内容
所有评论(0)