现象:有时候从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