带有Control-m字符的文件

时间:2012-05-11 23:29:36

标签: linux

我们正在开发Windows机器,代码部署在linux中。

在开发一些Linux脚本时,我们有一些ctrl-m字符。发布是提供给客户。

shell脚本中对ctrl-m字符的影响可能是什么。

NUS

4 个答案:

答案 0 :(得分:9)

在vi编辑器中打开文件

按下转义并在文件的命令行中输入以下内容。

:%S / ^ M //克

确保通过按Cntrl键+ V + M添加^ M然后按Enter

它将删除字符,您可以保存文件。

答案 1 :(得分:4)

它将改变shebang行,以便找不到解释器。

$ ./t.sh
bash: ./t.sh: /bin/bash^M: bad interpreter: No such file or directory

答案 2 :(得分:4)

^M个字符是回车符。 Windows和DOS使用CR^M或ASCII代码13)后跟LF^J或换行符,ASCII代码10)终止文本行。 Linux仅使用LF,因此回车符显示为文本的一部分,并按此解释。这意味着他们会打破脚本。

大多数Linux发行版都预装了一个名为dos2unix的实用程序。您可以使用它将行尾字符从DOS样式转换为linux样式。

有些编辑会自动为您进行转换;其他人可以选择让您指定使用哪种模式。

答案 3 :(得分:0)

您也可以使用以下语法。因为在Windows中,这个Control + v + m不起作用,你可以使用\ r \ n。

以二进制模式打开文件,使用带-b选项的vim编辑器查看Control-M字符,并使用以下命令替换Control-M字符

  

%S @ \ r @@克