2011-03-08 2 views
0

내가하고있는 일은 쉘 파일에 echo put $clientfilepath'client-'$clientversion-'.jar' >> ftp.ftp입니다. 는 $clientfilepath은 여기서 c:\\workspace\\project\\jack\\prj1\\target\\$clientversion1.0-snapshot쉘이 여러 줄로 파일을 끝내고 있습니까?

내가 ftp.ftp 기대 :

put 
c:\\workspace\\project\\jack\\prj1\\target\\client-1.0-snapshot.jar 

하지만 내가 갖는 것은 : 나는 두 번 사용하고

put c:\\workspace\\project\\jack\\prj1\\target\\ 
client-1.0-snapshot 
.jar 

\ 따라서 파일 경로의 어떤 것도 특수 문자로 처리되지 않아야합니다. 아무도 무슨 일이 일어나고 있는지 알고 있나요?

+0

그것은 보인다 $의 clientfilepath 공백으로 끝? –

+0

@cebewee, 올바르게 입력되지 않았습니다. 나는 형식을 고쳤다. 문제를 지금보다 쉽게 ​​볼 수있을 것이다. :) – sarnold

+0

@Jack,'$ clientfilepath'는 어떻게 생성 되었습니까? 끝에 여분의 '\ n'문자가 있다고 추측 할 수 있습니다. – sarnold

답변

0
echo put $clientfilepath'client-'$clientversion-'.jar'|tr '\n' '' >> ftp.ftp 
+0

아직도 헤어질 수 없습니다. 정말 이상합니다. – Jack

+2

이것은'tr -d '\ n'' –

+0

이어도된다. -d는 나뉘어진다. – Jack

0

당신은 인용을 단순화 할 수 있습니다 :

echo "put ${clientfilepath}client-${clientversion}-.jar" >> ftp.ftp 

이이 문제에 도움이 있는지 확인하기 위해 그보십시오. 또한 echo 대신 printf 시도 :

printf 'put %sclient-%s-.jar\n' "$clientfilepath" "$clientversion" >> ftp.ftp 
+0

둘 다 내 원래 상황과 비슷하다. @ – Jack

+0

@ Jack :'hexdump -C'를 통해 줄 바꿈을하면 줄 바꿈을 볼 수 있습니까? –

관련 문제