修改linux shell脚本编码格式的方法,解决因为脚本编码格式不对导致运行出错的问题。
为了方便修改服务器的ssh登录为秘钥登录,所以在网上找了一个一键脚本。该脚本以前测试的时候没有问题,但是最近使用却发现了一些问题。
因为该脚本是存放在github上,国内的服务器连接不上。所以就收脚本代码复制下载,然后在自己的电脑上新建记事本保存,并修改后缀名为*.sh,然后上传到服务器上运行。
然后出出现了一些莫名其妙的问题,该脚本上传到服务后就各种运行报错,但如果把脚本中的命令单独复制出来执行就没有任何问题。这个问题搞的自己一头雾水,于是就网站发帖寻找答案。有热心网友指出可能是编码格式的问题,在windows电脑是编辑使用的dos的编码格式,上传到服务器以后运行报错可能是编码格式不对的问题。
经过验证,发现确实是linux shell脚本的编码格式不对导致的问题,由于在自己的电脑上编辑过,所以才会出现这样的问题。解决的办法也很简单,只需要使用vi命令打开该脚本,然后使用:set ff=unix命令修改一下编码格式就可以了。经过测试,该方法可以完美的修改linux shell脚本的编码格式。
举个例子:
如果我们想修改666.sh脚本的编码格式为unix,需要输入的命令为:
vi 666.sh #使用vi命令打开该脚本 :set ff #查看该脚本的编码格式 :set ff=unix #修改该脚本的编码格式为unix :wq #保存退出
经过实际测试,该方法可以修个linux shell脚本因为编码格式不对而导致的各种运行出错的问题!