vi修改文件格式编码(从dos改为unix)

现象:有时候从window写好的脚本文件,上传到Linux后执行会报错,如下

脚本很简单,如下

#!/usr/bin/env bash

ZK_SERVER_HEAP="${ZK_SERVER_HEAP:-1000}"
echo $ZK_SERVER_HEAP

执行后报错信息如下

root@server-4:/opt# bash test.sh
test.sh: line 2: $'\r': command not found

原因:Unix及类Unix系统里,每行结尾只有换行“\n”,Windows系统里面,每行结尾是换行+回车“\n\r”,编码格式不一样。

解决方法:修改文件的编码,如下

在linux上用vi打开文件

# 打开文件
vi test.sh

# 查看原格式
:set ff
fileformat=dos

# 修改编码格式
:set ff=unix

# 保存退出
:wq

你可能感兴趣的:(linux)