shell脚本执行异常,由于换行符的问题导致
问题描述
启动脚本第一行提示line 1: #!/bin/sh: No such file or directory
看着都难受,有强迫症必须修复它
log
[weblogic@hz-dzswj-sc-x sh]$ ./start_bszm-web.sh
./start_bszm-web.sh: line 1: #!/bin/sh: No such file or directory
Using CATALINA_BASE: /servyou/tomcat/bszm-web_tomcat
Using CATALINA_HOME: /servyou/tomcat/bszm-web_tomcat
问题解决
经分析是因为脚本的换行符有问题(CRLF),liunx的换行符(LF).所以修改下换行符问题自热就得到解决。
把脚本copy出来,放到vscode修改LF然后保存,在copy到脚本中即可。
知识点
LF vs CRLF
CRLF, LF 是用来表示文本换行的方式
CR(Carriage Return) 代表回车,对应字符 '\r'
LF(Line Feed) 代表换行,对应字符 '\n'
由于历史原因,不同的操作系统文本使用的换行符各不相同,主流的操作系统一般使用CRLF或者LF作为其文本的换行符。
//shell脚本换行符的差异
Windows 系统使用的是 CRLF
Unix系统(包括Linux, MacOS近些年的版本) 使用的是LF