问题背景

最近在构建虚拟机服务器集群时,由于需要在节点之间相互传输、分发文件,因此相比手动挨个传输,通过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

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐