代码改变世界

Linix登录报"/etc/profile: line 11: syntax error near unexpected token `$'{\r''"

  潇湘隐者  阅读(12154)  评论(0编辑  收藏  举报

同事反馈他在一测试服务器(CentOS Linux release 7.2.1511)上修改了/etc/profile文件后,使用source命令不能生效,让我帮忙看看,结果使用SecureCRT一登录就发现下面错误信息:

Last login: Fri Nov 4 00:42:45 2016 from 10.20.34.14
 
-bash: $'\r': command not found
 
-bash: $'\r': command not found
 
-bash: $'\r': command not found
 
-bash: /etc/profile: line 11: syntax error near unexpected token `$'{\r''
 
'bash: /etc/profile: line 11: `pathmunge () {

clip_image001

 

错误提示信息已经反馈/etc/profile里面有一些异常,初步检查/et/profile文件后,没有发现异常,很是奇怪,后面我使用cat -v /etc/profile检查,发现里面大量的Windows下的换行符。如下截图所示

 

clip_image002

 

咨询了一下他是怎么修改,他反馈是将该文件拷贝出来,然后用文本编辑器修改,然后覆盖原文件。到这里已经知道具体原因了,使用dos2unix profile将profile文件从Windows格式文件转换为Unix、Linux格式,然后在执行source profile使之生效,问题解决。

编辑推荐:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
阅读排行:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
历史上的今天:
2014-11-04 Symantec Backup Exec Agent For Linux防火墙问题
点击右上角即可分享
微信分享提示