已插入回车符,并从dos文件中复制

时间:2018-08-23 07:16:26

标签: bash unix powercli

我遇到一个问题,其中将^M个字符插入到脚本文件中。我有一个Bash脚本:

#!/bin/bash

# Do something
echo "hello world"

使用PowerCLI将脚本文件从Windows复制到Ubuntu虚拟机:

Copy-VMGuestFile -Source "C:\test.sh" -Destination /tmp/test.sh -LocalToGuest -GuestUser root -GuestPassword p@ssword -VM VM001

复制后,使用vi打开文件时,显示的格式为:

#!/bin/bash^M

^M
# Do something^M
echo "hello world"^M

复制文件时,是否有办法阻止添加^M?我可以使用sed替换字符,但这不是一个干净的解决方案。

1 个答案:

答案 0 :(得分:0)

副本中未添加控制字符,它们是Windows文件的一部分。

在Windows上,行以回车符和换行符终止。在Unix上,它只是换行符,因此您会在文件中看到多余的回车符。

根据您在Windows上选择的编辑器,您可能可以将行为更改为对Unix更友好。例如,崇高的是

查看->行尾-> Unix

或者,您可以在复制之前/之后通过翻译器运行脚本。它将与您使用sed所做的相同。