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. 在主命令周围使用单引号以防止本地 shell 填充变量。这也会导致远程命令中的双引号出现问题。如果您更改为单引号,则需要确保您仍然awk正确引用了参数。
  2. 您已经使用了小写$fname和大写$FNAME- 它们都应该相同($FNAME在本例中)。

您需要解释“不工作”的含义。这会给你更好的答案。

于 2012-06-24T06:11:36.160 回答