在寫作顛覆一個pre-commit鉤子,我在的情況下我對svnlook
調用作爲在提交事務期間,「svnlook cat」會被強制輸出格式正確的文本嗎?
MESSAGE=`svnlook cat -t $TXN $REPOS $FILE`
導致返回值由一個單一的,不斷線的正確格式的文件,而不是( s)在嘗試提交中發生了變化。這是有問題的,因爲源文件的格式對編譯很重要。任何想法爲什麼這一切都結束在一條線上?我錯過了什麼嗎?
在寫作顛覆一個pre-commit鉤子,我在的情況下我對svnlook
調用作爲在提交事務期間,「svnlook cat」會被強制輸出格式正確的文本嗎?
MESSAGE=`svnlook cat -t $TXN $REPOS $FILE`
導致返回值由一個單一的,不斷線的正確格式的文件,而不是( s)在嘗試提交中發生了變化。這是有問題的,因爲源文件的格式對編譯很重要。任何想法爲什麼這一切都結束在一條線上?我錯過了什麼嗎?
格式仍然存在,但在您嘗試使用$MESSAGE
未加引號時會消失。除非受引號保護,否則外殼將所有空白序列轉換爲單個空間。舉一個例子:
$ var='foo
bar'
$ echo $var
> foo bar
$ echo "$var"
> foo
> bar
$ var='foo
bar'
$ echo $var
> foo bar
$ echo "$var"
> foo
> bar
我剛碰到同樣的問題,條件是文件中的結尾由單個CR(0x0D)組成。它適用於LF(0x0A)和CRLF(0x0D0A)。 shell命令cat有同樣的問題。
編輯:如果在perl腳本中使用,結果是一個連續的行。如果直接在shell命令行上使用,結果是整行會垂直混合成一條短行。嚴格的技術性,這是正確的結果 - 沒有換行,只是回車。但它沒有太大的實用價值。