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"

上記のforループはリモートホストでは機能していません。誰かがこれについて私を助けてくれますか?

4

1 に答える 1

0

コードをコードブロックに入れるように質問を編集しました。その間に、私はいくつかの潜在的な問題を見ることができます:

  1. ローカルシェルが変数を入力しないようにするには、メインコマンドを一重引用符で囲みます。これにより、リモートコマンドの二重引用符で問題が発生することもあります。awk一重引用符に変更する場合は、引数を適切に引用符で囲んでいることを確認する必要があります。
  2. $fname小文字と大文字の両方を使用しました。$FNAMEこれらはすべて同じである必要があります($FNAMEこの場合)。

「機能しない」とはどういう意味かを説明する必要があります。これはあなたにはるかに良い答えを与えるでしょう。

于 2012-06-24T06:11:36.160 に答える