바라건대 이것은 간단한 하나의 것이어야합니다. 여기에 내 test.sh 파일이 있습니다 :bash 쉘 스크립트에서 변수에 공백을 넣는 방법?
#!/bin/bash
patch_file="/home/my dir/vtk.patch"
cmd="svn up \"$patch_file\""
$cmd
"my dir"의 공백을 적어 둡니다. 내가 그것을 실행할 때,
$ ./test.sh
Skipped '"/home/my'
Skipped 'dir/vtk.patch"'
나는 변수에 공간을 수용하고 명령을 실행하는 방법을 모른다. 그러나 bash 쉘에서 다음을 실행하면 문제없이 작동합니다.
$ svn up "/home/my dir/vtk.patch" #WORKS!!!
어떤 제안을 주시면 대단히 감사하겠습니다! 나는 윈도우에서 cygwin에서 bash를 사용하고있다.
왜 명령을 변수에 넣으시겠습니까? 왜 명령을 직접 실행하지 않습니까? –
@Dennis - 패치 파일의 홈 디렉토리가 런타임에 감지됩니다. 다른 스크립트는 홈 디렉토리를 "/ home/my dir /"로 탐지하고이를이 스크립트의 인수로 전달합니다. 이 스크립트는 탐지 된 홈 디렉토리에 "vtk.patch"를 추가하고 패치 파일에서 svn을 실행합니다. – Bala
[ "변수에 명령을 넣으려고합니다. 그러나 복잡한 경우는 항상 실패합니다."] (http://mywiki.wooledge.org/BashFAQ/050 "BashFAQ/050"). –