2011-02-15 5 views
0

bash 스크립트에서 svn 명령을 실행하는 중 오류 (작업 복사본이 아닙니다.)가 발생합니다. 나는 파일 이름을 포함하는 파일을 읽고 싶다. 이 파일 이름은 스크립트에서 처리됩니다. 각 파일 이름은 별도의 행에 있습니다. 일부 경로에 공백이 있기 때문에 스크립트가 실패합니다. 다음은 스크립트와 파일의 스 니펫입니다. 파일에서 공백을 이스케이프 처리하고 변수 주위에 인용 부호 (dubble)를 사용하는 등 몇 가지 시도를했지만 여전히 운이 없다.공백이있는 변수로 쉘 명령을 실행하십시오.

스크립트 :
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

+0

파일에있는 모든 백 슬래시. –

+0

그게 문제였습니다. 문제를 해결하기 위해 새로운 것을 만들었습니다 ... 고마워요. – JohanKees

관련 문제