PSFTP可以执行循环吗?

时间:2016-10-28 16:37:25

标签: linux while-loop psftp

我在互联网上搜索了很多但是还没找到任何有用的信息。 PFTP不允许你运行像'IF'和'WHILE'这样的循环吗?

如果确实如此,请让我知道语法,我试图敲击它。令人讨厌的是,PuTTY允许这些命令,但psftp似乎并不是两个来自同一个家庭。我真的希望有一个解决方案!

1 个答案:

答案 0 :(得分:0)

PSFTP不是一种语言。它只是一个SFTP客户端。 SFTP本身只是一种在计算机之间移动文件的协议。如果在远程计算机上设置了SFTP,则表明您已运行SSH(因为SFTP通常与SSH服务器安装捆绑在一起)。

例如,您可以在bash shell脚本中进行测试,以查看该文件是否存在于远程服务器上,然后根据结果执行psftp命令。类似的东西:

#!/bin/bash

# test if file exists on remote system
fileExists=$(ssh user@yourothercomputer "test -f /tmp/foo && echo 'true' || echo 'false'")

if $fileExists; then
    psftp <whatever>
fi

你可以把整个烂摊子放在一个循环或whatevs中。这里发生的是我们正在向远程计算机发送命令test -f /tmp/foo && echo 'true' || echo 'false'以执行。返回该命令的标准输出并存储在变量fileExists中。然后我们测试它。

如果您在Windows中,可以将其转换为批处理脚本,并使用plink.exe发送命令kind of like they do here。或者也许只是使用SSH和SFTP客户端在计算机上安装cygwin并使用上面的内容。

这里最重要的一点是,您需要一个单独的脚本环境来执行循环并根据测试运行psftp。