2012-06-24 3 views
0
ssh $hname "cd /opt/tomcat/webapps/aware/WEB-INF/classes/com && for FNAME in `tar tvf /tmp/prop.tar | awk '{print $6}'` 
do 
    if test ! -s "/tmp/$fname/prop_bkup.tar" 
    then 
    ls $FNAME && tar cvf /tmp/$fname/prop_bkup.tar $FNAME && rm $FNAME || echo "$FNAME is a new file". 
    else 
    ls $FNAME && tar uvf /tmp/$fname/prop_bkup.tar $FNAME && rm $FNAME || echo "$FNAME is a new file". 
    fi 
done" 

위의 루프는 원격 호스트에서 작동하지 않습니다. 아무도 이것에 나를 도울 수 있습니까?원격 호스트의 루프가 작동하지 않습니다 - 쉘 스크립트

답변

0

코드를 코드 블록에 넣으라는 질문을 편집했습니다. 변수에서 해당 지역의 쉘 충전을 방지하기 위해 주요 명령 주위

  1. 사용 따옴표 : 그 동안, 나는 몇 가지 잠재적 인 문제를 볼 수 있습니다. 또한 원격 명령에서 큰 따옴표를 사용하여 에 문제가 발생합니다. 작은 따옴표로 변경하는 경우 awk 인수를 올바르게 인용했는지 확인해야합니다.
  2. $fname 소문자와 대문자 $FNAME을 모두 사용했습니다. 모두 동일해야합니다 (이 경우 $FNAME).

"작동하지 않음"으로 무엇을 의미하는지 설명해야합니다. 이것은 당신에게 훨씬 더 나은 답변을 줄 것입니다.

+0

안녕하세요, 우리는 원격 호스트의 명령 파일을 사용하여이 동일한 루프를 실행합니다. 즉, echo 명령을 사용하여 로컬에서 루프를 작성하고 원격 호스트에서 실행합니다. – user1477698

+0

원한다면 같은 문제가 발생합니다. 실행할 스크립트로 로컬 파일을 작성한 다음 scp를 사용하여 원격 호스트에 복사 한 다음 ssh를 통해 실행하는 것이 좋습니다. – lxop

+0

안녕하세요, 근래에 수정했는데 잘 작동합니다. 주어진 지원에 감사드립니다. – user1477698

관련 문제