문제

2010-08-08 5 views
1

코드 :문제

HOST=localhost 
PORT=1234 
RSYNCCMD="rsync -avP -e \"ssh -p $PORT\"" 

${(z)RSYNCCMD} [email protected]$HOST:"\"/foo\"" /bar 

출력 : 내가 직접 콘솔에 같은 일 (rsync -avP -e "ssh -p 1234" ...)를 입력하면

rsync: Failed to exec ssh -p 1234: No such file or directory (2) 
... 

, 그것은 작동합니다.

어떻게 수정합니까? `기능 에코 (:

+0

시도 (${(z)RSYNCCMD}rsync -avP -e \"ssh\ -p\ 1234\"로 확대 될 것으로 보인다, (Q)는 추가 unquoting 마법을한다)) {for in a $ @; echo -E - $ a; 완료}''rsync'를'Echo'로 대체합니다. 그것은 무엇을 보여줍니까? – ZyX

답변

1

당신 (대신 ${(z)RSYNCCMD})에 대한 작동 할 수 ${(Q)${(z)RSYNCCMD}}를 사용하여 기능 에코를 정의하는

+0

옵션은 무엇입니까? 그건 내 사건이 아니야. – ZyX

+1

. 예, 당신의 대답은 효과가 있지만, topic starter는'eval $ {(z) RSYNCCMD} ... '를 사용하는 것을 고려할 수도 있습니다. – ZyX

+0

'eval'에는 다른 문제가 있습니다. 기본적으로 나머지는 모두 인용해야합니다. 하지만'(Q)'가있는 해결책은 훌륭하게 작동합니다. – Albert