syntax error near unexpected token 脚本报错误解决【转】
第一种方法失败了,win的文本自带^M的确是问题
syntax error near unexpected token 脚本报错误解决
在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插槽
syntax error near unexpected token 脚本报错误解决【转】相关推荐
- linux shell脚本无法执行,报错syntax error near unexpected token `$'\r''解决方法
运行shell脚本时出现:syntax error near unexpected token `$'\r"的错误,一般是格式的问题,比如直接从txt文档拷贝过来的内容: 解决方法:sed ...
- sh运行时直接报错了syntax error near unexpected token `$‘\r‘
用文本编辑器写完脚本后,上传到Linux,sh运行时直接报错了syntax error near unexpected token `$'\r' 两种解决方法 第一种 第一步 vim -b XXX.s ...
- $‘\r‘: command not found,syntax error near unexpected token `$‘in\r‘‘
syntax error near unexpected token `$'in\r''的解决方法 原因 在Linux系统中,运行Shell脚本,出现了如下错误: $'\r': command not ...
- 写shell,运行出错:syntax error near unexpected token `do
cygwin下面写shell,运行出错:syntax error near unexpected token `$'do\r" 写shell,运行出错:syntax error near u ...
- 成功解决bash syntax error near unexpected token from
成功解决bash syntax error near unexpected token from 目录 解决问题 解决思路 解决方法 解决问题 -bash: syntax error near une ...
- 成功解决.sh: line 6: syntax error near unexpected token `do
成功解决.sh: line 6: syntax error near unexpected token `do 目录 解决问题 解决思路 解决方法 T1.修改格式系统间不兼容的格式
- shell编程报错:“syntax error near unexpected token `”
今天写了个shell脚本,在自己机器上运行正常,给同事,运行报错syntax error near unexpected token `,左看右看shell脚本没有问题,没有办法google搜索,发现 ...
- 记一次坑爹报错之旅 -bash: /etc/profile: line 11: syntax error near unexpected token
昨晚修改了环境变量后,进行重置服务时 source /etc/profile 报错 [root@localhost etc]# source /etc/profile -bash: /etc/prof ...
- rm删除报错 :-bash: syntax error near unexpected token `('
删除报错 :-bash: syntax error near unexpected token `(' root@ubuntu:~# rm -rf zabbix-release_4.2-1+xenia ...
最新文章
- [转] 在Mac上搭建React Native开发环境
- oracle列,oracle列合并
- 中科院aibench_中科院发布目标追踪数据集,万条视频,150万个边界框 | 快来下载...
- ORACLE 10G DATAGUARD实战步骤(转载)
- C++11学习笔记-----获取异步操作执行结果
- FileOutputSteam入门
- Uva 1025 - A Spy in the Metro(DP)
- mysql索引1908
- UI设计灵感|3D\C4D元素网站,流行最前沿
- Win10专业版下如何禁用Windows Defender功能?
- 「小程序JAVA实战」小程序开源搜索组件(53)
- WINCE6.0+ILI9806E休眠唤醒显示异常问题
- 实现fashion_minst服装图像分类
- 批处理系统、分时操作系统、实时操作系统
- 穷查理宝典:查理·芒格智慧箴言录
- 西安电子科技计算机学院导师,西安电子科技大学计算机学院研究生导师简介-李金库...
- ARM Cortex 详解
- Jetson Tegra X系列刷机教程
- Vulkan层的简要说明
- 利用计算机软件温度补偿,一种计算机硬件设备专用温度补偿系统的制作方法
热门文章
- Flutter采坑实录
- 最新Eclipse版本2020,最新版本JDK14的下载和使用(超详细)
- [国家集训队] 部落战争
- Uboot中lpddr4的初始化(i.MX8M)
- 地球生命为啥只选择碳基生命,而不是硅基生命呢?
- 如何给脚本增加卡密验证功能,权朗网络验证对接教程
- 树莓派raspberry搭建打印cups服务器连接EPSON_L360打印机供ios安卓使用
- OpenLayers API整理
- 【软路由】J4125安装PVE7.3+iKuai+OpenWrt+NAS+Win10+Debian+CentOS
- java笔记(第一部分语法基础)