2

我们正在使用 Windows 机器,代码部署在 linux 中。

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

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

努斯

4

4 回答 4

10

在 vi 编辑器中打开文件

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

:%s/^M//g

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

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

于 2012-12-28T19:06:20.033 回答
4

It will change the shebang line, so that the interpreter isn't found.

$ ./t.sh
bash: ./t.sh: /bin/bash^M: bad interpreter: No such file or directory
于 2012-05-12T00:35:56.503 回答
4

^M字符是回车符。CRWindows 和 DOS 以(^M或 ASCII 代码 13) 后跟LF(^J或换行符,ASCII 代码 10)来终止文本行。Linux 使用 just LF,因此回车符作为文本的一部分出现并被解释为这样。这意味着他们会破坏脚本。

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

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

于 2012-05-12T01:27:57.203 回答
0

您也可以使用以下语法。由于在 Windows 中,此 Control+v+m 不起作用,您可以使用 \r 代替。

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

%s@\r@@g

于 2014-03-11T05:04:00.830 回答