다음 svn 명령을 자동화하고 싶습니다. 이 명령은 내 시스템에서 원하는 결과를 만들어 주 - 명령 줄에서 발행 우분투 10.04, SVN 1.6.6, bash 쉘을, :변수 및 줄 바꿈에 대한 도움말 및 bash 스크립트에서 인용하기
svn ci -m $'Added new File: newFile.txt\nOrig loc: /etc/networking/newFile.txt' /home/user/svnDir/newFile.txt
나는 가정, 떠들썩한 파티 스크립트에서 해당 명령을 실행하고 싶습니다 파일의 원래 전체 경로는 $ oFileFull 변수에 포함되어 있으며 파일 이름은 $ oFileName에 있습니다. 스크립트는 svn 디렉토리에서 실행됩니다. 파일 이름 및/또는 경로에 공백이 포함될 가능성을 허용해야합니다.
은 나의의 shel 스크립트 내부의 라인과 같습니다svn ci -m$'Added new file: ${oFileName}\nOrig loc: ${oFileFull}' ${oFileName}
하지만 명령이 실행되기 전에 변수 (공백을 포함 할 수 있음) 확장하고자, 나는 동안이 작업을 수행하는 방법을 알아낼 수 없습니다 Subversion 주석 로그에 새 줄을 얻기 위해 필요한 작은 따옴표로 svn 주석을 묶습니다. 나는이 명령을 올바르게 인용하고 조립하는 방법을 알아 내려고 노력하고있다. 어떤 도움을 주셔서 감사합니다.
감사합니다. 매력처럼 작동했습니다. 흥미롭게도, 출력을 표시하기 위해 echo를 실험하고 사용할 때 $ nl 변수는 작은 따옴표 대신 큰 따옴표로 선언해야했습니다. 작은 따옴표는 svn 명령에 대해 작동하며 로그의 형식이 올바르게 지정됩니다. – Scott
@Scott :'nl = $ '\ n'; echo "one $ {nl} two"가 효과적입니다. 'nl = $ "\ n"'을 사용하는 것은이 문맥에서'nl = "\ n"과 동일하며 리터럴 "\ n"(백 슬래시 -n)의 해석에'echo -e '가 필요합니다. 당신의 버전'echo'가 항상'-e'를하지 않는 한. \ n ""echo를 "echo -e"a \ nb "와 비교하면 무엇입니까? –
echo "a \ nb"= a \ nb echo -e "a \ nb"= a 다음 행에 b 다음에 – Scott