1

在为 subversion 编写预提交挂钩时,我处于调用svnlookas

MESSAGE=`svnlook cat -t $TXN $REPOS $FILE`

导致返回的值由单个连续行组成,而不是在尝试提交中更改的正确格式的文件。这是有问题的,因为源的格式对于编译很重要。知道为什么这一切都结束在一条线上吗?我错过了什么吗?

4

2 回答 2

1

格式仍然存在,但当您尝试使用未引用时会消失$MESSAGE。Shell 将所有空格序列转换为单个空格,除非它受到引号保护。举个例子:

$ var='foo
  bar'
$ echo $var
> foo bar
$ echo "$var"
> foo
> bar
于 2010-10-14T06:55:50.680 回答
0

在文件中的行结尾由单个 CR (0x0D) 组成的情况下,我遇到了同样的问题。它适用于 LF (0x0A) 和 CRLF (0x0D0A)。shell 命令 cat 也有同样的问题。

编辑:如果在 perl 脚本中使用,结果是一个连续的行。如果直接在 shell 命令行上使用,结果是整行垂直混合成一个短行。严格来说,这是正确的结果——没有换行,只有回车。但是没有太大的实用价值。

于 2010-10-22T15:25:00.680 回答