报错处理: syntax error near unexpected token `$‘ ‘‘ (linux中的^M)
Posted UQI-LIUWJ
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了报错处理: syntax error near unexpected token `$‘ ‘‘ (linux中的^M)相关的知识,希望对你有一定的参考价值。
1 问题描述
在windows 上使用MobaXTerm,在远程linux服务器上写脚本的时候,遇到了一个问题
windows操作系统 ssh 工具介绍:MobaXterm_UQI-LIUWJ的博客-CSDN博客
我的脚本如下,是一个很简单的脚本(trmf.sh)
#!/bin/bash
for((i=1;i<24;i++));do
echo $i;
done;
在windows的git bash 下是可以跑的,但是在linux上则会出问题
2 解决问题
为什么会出现这个问题呢?我们在linux环境中用 vim看一下这个脚本
vim -b trmf.sh
发现每一行的末尾,会出现一个^M的东西
解决方法很简单,在命令行里输出这样一行指令即可
sed -i 's/\\r//g' trmf.sh
然后便可以正常跑了
再次 vim 这个程序 ^M已经没有了
3 根本原因
Windows 格式的文件,用 0D 0A (CR+LF)作为换行符,而Linux 的则是以0A(LF) 作为换行符
所以Windows 格式下的文本文件到了Linux 的话,换行符就会多出来一个 0D(CR) ,在Linux中显示为 ^M
所以解决方法是在字符层面直接删除 ^M 即可
以上是关于报错处理: syntax error near unexpected token `$‘ ‘‘ (linux中的^M)的主要内容,如果未能解决你的问题,请参考以下文章
elasticsearch启动报错 syntax error near unexpected token `<'
exp命令报错:-bash: syntax error near unexpected token `(‘
执行shell脚本报错:syntax error near unexpected token `或syntax error: unexpected end of file
linux的shell脚本报错“syntax error near unexpected token `”的解决
关于报错“syntax error near unexpected token `”和回车换行
linux下打开一个带有括号的文件。报错bash: syntax error near unexpected token `('