脚本&报错
在windows下使用editplus编辑一个极简单的脚本文件:start.sh,用于启动同目录下的springboot项目
#!/bin/bash
PROJECT_NAME=service_ucenter-0.0.1-SNAPSHOT
pid=`ps -ef |grep $PROJECT_NAME |grep -v "grep" |awk '{print $2}'`
if [ $pid ]; then
echo "$PROJECT_NAME 项目正在运行,PID=$pid"
else
echo "成功启动项目:$PROJECT_NAME ......"
nohup java -server -Xms128m -Xmx512m -jar ./$PROJECT_NAME.jar --spring.profiles.active=prod >> log.out 2>&1 &
fi
保存格式:utf-8,上传到centos目录后,运行提示:
start.sh:行9: 未预期的符号 `fi' 附近有语法错误
start.sh:行9: `fi'
明明就个if-else,也没看出来有啥语法错误,这提示有点莫名其妙。
问题排查
使用vim打开文件,执行
:set ff
显示结果
fileformat=dos
看来还是文件格式问题:(
解决方案
在vim中使用
:set ff=unix
保存之后,重新运行,没有问题了。
简短说明
- set ff=unix:指定使用unix换行符(\n)
- set ff=dos:指定使用dos换行符(\r\n)
- set ff=mac:指定使用mac换行符(\r)
说白了就是各个系统的换行符标准没有统一。目前来看,想偷懒的话,只能把笔记本也改成Linux系统了。