在为subversion编写预提交钩子时,我处于svnlook
调用
MESSAGE=`svnlook cat -t $TXN $REPOS $FILE`
会返回一个返回值,该值由单个连续行组成,而不是在尝试提交中更改的格式正确的文件。这是有问题的,因为源的格式化对于编译很重要。知道为什么它们都以一条线结束了吗?我错过了什么吗?
答案 0 :(得分:1)
格式化仍然存在,但当您尝试使用$MESSAGE
不加引号时,格式化将消失。除非受引号保护,否则shell会将所有空白序列转换为单个空格。举个例子:
$ var='foo
bar'
$ echo $var
> foo bar
$ echo "$var"
> foo
> bar
答案 1 :(得分:0)
在文件中的行结尾由单个CR(0x0D)组成的条件下,我遇到了同样的问题。它适用于LF(0x0A)和CRLF(0x0D0A)。 shell命令cat有同样的问题。
编辑:如果在perl脚本中使用,结果是一条连续的行。如果直接在shell命令行上使用,结果是整条线垂直混合成一条短线。严格技术性,这是正确的结果 - 没有换行,只有回车。但它没有多大实际价值。