我遇到一个问题,其中将^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
替换字符,但这不是一个干净的解决方案。
答案 0 :(得分:0)
副本中未添加控制字符,它们是Windows文件的一部分。
在Windows上,行以回车符和换行符终止。在Unix上,它只是换行符,因此您会在文件中看到多余的回车符。
根据您在Windows上选择的编辑器,您可能可以将行为更改为对Unix更友好。例如,崇高的是
查看->行尾-> Unix
或者,您可以在复制之前/之后通过翻译器运行脚本。它将与您使用sed所做的相同。