Centos下如果是二进制文件,编辑是文本,后缀是sh也无法执行

这次部署redis遇到个问题,执行sh文件来启动redis,结果报配置文件无法打开。

 用vi打开sh文件反复检查过路径是对的。

然后手敲路径执行,运行正常;

直接执行sh文件不行:反复修改执行都没效果。

最后停下来复盘最近做了什么,考虑到这个文件是ftp下载下来的再进行编辑,当时还用了binary命令,下载redis安装包。

我考虑是不是这个sh文件是二进制的,而不是纯文本,所以才引起这个执行失败现象。

根据这个依据,马上删除 原来的sh文件,重新echo新建sh文件,再执行运行正常。

 各位,这个是ftp下载编码引起的问题吗?

这个是我本地模拟上传的原文 用十六进制进制查看内容的截图:

 

这是我模拟当时ftp用binary命令下载文件 用十六进制进制查看内容的截图:

 只是末尾部多了个0D,这个是windows格式的文本。用vi是不易看出来差别的,翻车在这里。

改进:

在linux下用hexdump 查看二进制文件

hexdump -C startRedis.sh

起到一样的效果

你可能感兴趣的:(维护,centos,linux,redis)