远程主机中的for循环不起作用 - shell脚本

时间:2012-06-24 05:53:50

标签: shell sh

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循环在远程主机中不起作用。有人可以帮我这个吗?

1 个答案:

答案 0 :(得分:0)

我已编辑您的问题,将代码放入代码块中。与此同时,我可以看到一些潜在的问题:

  1. 在主命令周围使用单引号来阻止您的本地命令 shell填充变量。这也会造成问题 使用远程命令中的双引号。 如果您更改为单引号,则需要确保仍然正确引用awk参数。
  2. 您使用了小写$fname和大写$FNAME - 它们应该都是相同的(在此实例中为$FNAME)。
  3. 你需要解释“不工作”的意思。这将为您提供更好的答案。