问题:在linux系统中提交shell脚本时有时会出现以下报错:
-bash: syntax error near unexpected token `newline'
或者
问题出现原因:在windows下编译过的文件换行符为^M$,而linux系统识别换行符为^U$, 所以在Windows系统编辑的脚本在Linux中无法运行。
可以通过以下指令看到换行符情况:
cat -A name.sh
问题解决:利用dos2unix进行转换
下载dos2unix:conda install -c bioconda dos2unix
使用:dos2unix name.sh
运行结束上述指令后可再次通过cat -A name.sh查看变换情况。
再次提交脚本,就没有报错啦!
本文讲述了在Linux系统中遇到的shell脚本报错,原因在于Windows和Linux对换行符的理解不同。通过使用`dos2unix`工具将Windows系统的^M$换行符转换为^U$,解决了脚本无法在Linux运行的问题。






