Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
远程主机中的for循环不工作-shell脚本_Shell_Sh - Fatal编程技术网

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

远程主机中的for循环不工作-shell脚本,shell,sh,Shell,Sh,上述for循环在远程主机中不工作。有人能帮我吗?我已经编辑了您的问题,将代码放入代码块中。同时,我可以看到一些潜在的问题: 在主命令周围使用单引号以防止本地 shell填充变量。这也会造成问题 使用远程命令中的双引号。 如果更改为单引号,则需要确保仍然正确引用了awk参数 您使用了小写的$fname和大写的$fname——它们应该是相同的($fname) 你需要解释一下“不工作”是什么意思。这将为您提供更好的答案。您好,我们不能在远程主机中使用命令文件执行相同的循环,我的意思是使用echo命令从

上述for循环在远程主机中不工作。有人能帮我吗?

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

  • 在主命令周围使用单引号以防止本地 shell填充变量。这也会造成问题 使用远程命令中的双引号。 如果更改为单引号,则需要确保仍然正确引用了
    awk
    参数
  • 您使用了小写的
    $fname
    和大写的
    $fname
    ——它们应该是相同的(
    $fname

  • 你需要解释一下“不工作”是什么意思。这将为您提供更好的答案。

    您好,我们不能在远程主机中使用命令文件执行相同的循环,我的意思是使用echo命令从本地写入循环,并在远程主机上执行(如果您愿意),但同样的问题也会出现。您最好使用要运行的脚本编写一个本地文件,然后使用scp将其复制到远程主机,然后通过ssh执行它。谢谢你的支持,没问题。请随意点击我答案旁边的勾号接受。
    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"