2011-02-15 113 views
0

在bash腳本中執行svn命令時出現錯誤(不是工作副本)。我想讀取包含文件名的文件。這些文件名在腳本中得到處理。每個文件名都在一個單獨的行上。由於某些路徑包含空格,因此腳本失敗。以下是腳本和文件的片段。我已經嘗試了一些東西,比如轉義文件中的空格,並在變量周圍使用(複製)引號,但仍然沒有運氣。執行帶有空格的變量的shell命令

腳本:
while read line
do
echo "Line = $line"
svn propset svn:needs-lock yes $line
done <$1

文件:
/tmp/svntmp/bi/tags/SCR-400/framework/customdata.xml
/tmp/svntmp/bi/tags/SCR-400/framework/model.xml
/tmp/svntmp/bi/tags/SCR-400/framework/Preferences.xml
/tmp/svntmp/bi/tags/SCR-400/framework/Repository.xml
/tmp/svntmp/bi/tags/SCR-462/standaard\\ overzichten/Standaard\\ CPI\\ \\(Cliënten\\ productie\\ intramuraal\\)/CPI017\\ ZZP\\ productie\\ per\\ client\\ per\\ OE.xml
...

輸出:
...
Line = /tmp/svntmp/bi/tags/3.2.0.6/standaard\ overzichten/Standaard\ CZA\ \(Cliënten\ zorg\ algemeen\)/CZA001\ Wachtlijst\ bewoning.xml
svn: warning: '/tmp/svntmp/bi/tags/3.2.0.6/standaard\' is not under version control
svn: 'overzichten' is not a working copy
svn: 'overzichten' does not exist
...

請就如何解決這一建議。謝謝。

問候,

約翰 - 基斯

回答

1

使用雙引號在適當的時候。

svn propset svn:needs-lock yes "$line" 

請注意,如果你的文件確實看起來像那麼這將不分嗆,其他原因。

+0

我試過配音引號,但還是沒有運氣。你還有什麼其他原因? – JohanKees 2011-02-15 11:19:16