4

我在 Cygwin 中使用 shell 脚本时遇到问题。导致问题的具体命令是这样的:

sed -e "s/6.0.[0123456789]\{1,\}/6.0.${REV}/g" "path/to/file/config.xml" > "path/to/file/config.xml.tmp"

问题是文件被创建时末尾带有一个奇怪的字符,因此它没有被命名为 config.xml.tmp,而是命名为“config.xml.tmp”。从“ls”命令和 Windows 命令提示符来看,它看起来像“config.xml.tmp?”

如果我仅从 shell 运行 sed 命令,则文件命名正确,并且脚本在 Linux 中运行良好。

知道有什么问题吗?谢谢!

4

1 回答 1

2

我的猜测是您的脚本文件没有 UNIX 行结尾。windows 行结尾的\r字符是添加到文件名末尾的字符。您可以检查odhexdump查看是否是问题所在。

于 2010-01-04T19:29:57.573 回答