第一种方法失败了,win的文本自带^M的确是问题

原创

syntax error near unexpected token 脚本报错误解决

2018-03-14 21:25:53 會飛的土豆 阅读数 28644

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/sinat_31068093/article/details/79560601

在linux服务器上运行一个python3文件时,发现执行时就报错:syntax error near unexpected token,仔细查找了还是没找到错误,后来发现脚本内容每行尾行都添加了^M的字符,查看方式:vi -b 打开脚本文件

后来想了下,造成这个的原因应该是脚本有试过拿到Win机器上存放,期间也用Win下的编辑器编辑过。

现在简单整理如下:

使用vim -b命令查看文件内容如下:

每一行多了一个^M有木有?

那么接下来就要搞清楚这个^M是什么东东?

long long long ago .....  老式的电传打字机使用两个字符来另起新行。一个字符把滑动架移回首位 (称为回车,<CR>,ASCII码为0D),另一个字符把纸上移一行 (称为换行, <LF>,ASCII码为0A)。当计算机问世以后,存储器曾经非常昂贵。有些人就认定没必要用两个字符来表示行尾。UNIX 开发者决定他们可以用 一个字符来表示行尾,Linux沿袭Unix,也是<LF>。Apple 开发者规定了用<CR>。开发 MS-DOS以及Windows 的那些家伙则决定沿用老式的<CR><LF>。

因为MS-DOS及Windows是回车+换行来表示换行,因此在Linux下用Vim查看在Windows下用VC写的代码,行尾后的“^M”符号,表示的是换行符。

基本解决方法有三个:

1.用vim编辑器替换

vim -b filename

在命令模式下执行%s/^M//g进行替换

注意:上述命令行中的“^M”符,不是“^”再加上“M”,而是由“Ctrl+v”、“Ctrl+M”键生成的。

2.使用dos2unix命令进行转换

Dos2unix在有些版本的系统中默认是安装的。

在Linux中,文本文件用"\n"表示回车换行,而Windows用"\r\n"表示回车换行。所以在Linux中使用Windows的文本文件常常会出现错误。为了避免这种错误,Linux提供了两种文本格式相互转化的命令:dos2unix和unix2dos,dos2unix把"\r\n"转化成"\n",unix2dos把"\n"转化成"\r\n"。

命令dos2unix和unix2dos的使用非常简单,格式为:dos2unix filename

如果想了解更多,可以查看手册。man dos2unix

3.使用文本处理工具

cat filename | tr -d "/r" > newfile 去掉^M生成一个新文件。

同样还有sed命令等,凡是可以替换的命令都是可以用来新生成一个文件的。

另外,在上传到Linux平台过程中,可以选择上传类型为二进制,也可以避免此问题,大家可以试一下



http://www.taodudu.cc/news/show-3162792.html

相关文章:

  • python爬虫个人文档整理
  • 数据分析--可视化matplotlib
  • python爬虫课程笔记
  • 物联网行业4大潜在突破领域浅析
  • 寻人风波——解决iphone4s无法接听的问题
  • axios如何解决跨域的方案
  • Git之如何解决更新代码的冲突问题
  • 解决复杂问题方法-分治
  • 解决 Eclipse下Java heap space问题
  • GitLab 解决冲突
  • 跨域的五种解决方案详解
  • nginx解决跨域
  • HashMap如何解决哈希冲突?
  • 解决中文乱码汇总
  • java乱码问题解决总结
  • 解决跨域的四种方式
  • Idea 中解决git冲突
  • git冲突解决,使用git命令解决冲突【通用版】
  • 解决SVN代码冲突
  • IDEA乱码解决
  • 如何解决问题并给出解决方案
  • HeadFirst_HTML5 O'REILLY_Chap.2_JavaScript和DOM
  • WPF
  • 0640-6.1.1-Hue上SQL查询结果显示不全异常分析-补充
  • 网络基础:socket模块
  • 智能可视化v1.0
  • 递去了怎么还归来了呢
  • 30岁转行学Python晚吗?在这个年龄我为什么会焦虑?
  • 学习python的不知道第几天,整理一下所学内容
  • vue 父子组件 组件挂载 组件通信 slot插槽

  • 淘嘟嘟介绍
  • 商务合作
  • 免责声明

CopyRight © 淘嘟嘟版权所有

syntax error near unexpected token 脚本报错误解决【转】相关推荐

  1. linux shell脚本无法执行,报错syntax error near unexpected token `$'\r''解决方法

    运行shell脚本时出现:syntax error near unexpected token `$'\r"的错误,一般是格式的问题,比如直接从txt文档拷贝过来的内容: 解决方法:sed ...

  2. sh运行时直接报错了syntax error near unexpected token `$‘\r‘

    用文本编辑器写完脚本后,上传到Linux,sh运行时直接报错了syntax error near unexpected token `$'\r' 两种解决方法 第一种 第一步 vim -b XXX.s ...

  3. $‘\r‘: command not found,syntax error near unexpected token `$‘in\r‘‘

    syntax error near unexpected token `$'in\r''的解决方法 原因 在Linux系统中,运行Shell脚本,出现了如下错误: $'\r': command not ...

  4. 写shell,运行出错:syntax error near unexpected token `do

    cygwin下面写shell,运行出错:syntax error near unexpected token `$'do\r" 写shell,运行出错:syntax error near u ...

  5. 成功解决bash syntax error near unexpected token from

    成功解决bash syntax error near unexpected token from 目录 解决问题 解决思路 解决方法 解决问题 -bash: syntax error near une ...

  6. 成功解决.sh: line 6: syntax error near unexpected token `do

    成功解决.sh: line 6: syntax error near unexpected token `do 目录 解决问题 解决思路 解决方法 T1.修改格式系统间不兼容的格式

  7. shell编程报错:“syntax error near unexpected token `”

    今天写了个shell脚本,在自己机器上运行正常,给同事,运行报错syntax error near unexpected token `,左看右看shell脚本没有问题,没有办法google搜索,发现 ...

  8. 记一次坑爹报错之旅 -bash: /etc/profile: line 11: syntax error near unexpected token

    昨晚修改了环境变量后,进行重置服务时 source /etc/profile 报错 [root@localhost etc]# source /etc/profile -bash: /etc/prof ...

  9. rm删除报错 :-bash: syntax error near unexpected token `('

    删除报错 :-bash: syntax error near unexpected token `(' root@ubuntu:~# rm -rf zabbix-release_4.2-1+xenia ...

最新文章

  1. [转] 在Mac上搭建React Native开发环境
  2. oracle列,oracle列合并
  3. 中科院aibench_中科院发布目标追踪数据集,万条视频,150万个边界框 | 快来下载...
  4. ORACLE 10G DATAGUARD实战步骤(转载)
  5. C++11学习笔记-----获取异步操作执行结果
  6. FileOutputSteam入门
  7. Uva 1025 - A Spy in the Metro(DP)
  8. mysql索引1908
  9. UI设计灵感|3D\C4D元素网站,流行最前沿
  10. Win10专业版下如何禁用Windows Defender功能?
  11. 「小程序JAVA实战」小程序开源搜索组件(53)
  12. WINCE6.0+ILI9806E休眠唤醒显示异常问题
  13. 实现fashion_minst服装图像分类
  14. 批处理系统、分时操作系统、实时操作系统
  15. 穷查理宝典:查理·芒格智慧箴言录
  16. 西安电子科技计算机学院导师,西安电子科技大学计算机学院研究生导师简介-李金库...
  17. ARM Cortex 详解
  18. Jetson Tegra X系列刷机教程
  19. Vulkan层的简要说明
  20. 利用计算机软件温度补偿,一种计算机硬件设备专用温度补偿系统的制作方法

热门文章

  1. Flutter采坑实录
  2. 最新Eclipse版本2020,最新版本JDK14的下载和使用(超详细)
  3. [国家集训队] 部落战争
  4. Uboot中lpddr4的初始化(i.MX8M)
  5. 地球生命为啥只选择碳基生命,而不是硅基生命呢?
  6. 如何给脚本增加卡密验证功能,权朗网络验证对接教程
  7. 树莓派raspberry搭建打印cups服务器连接EPSON_L360打印机供ios安卓使用
  8. OpenLayers API整理
  9. 【软路由】J4125安装PVE7.3+iKuai+OpenWrt+NAS+Win10+Debian+CentOS
  10. java笔记(第一部分语法基础)