我在互联网上搜索了很多但是还没找到任何有用的信息。 PFTP不允许你运行像'IF'和'WHILE'这样的循环吗?
如果确实如此,请让我知道语法,我试图敲击它。令人讨厌的是,PuTTY允许这些命令,但psftp似乎并不是两个来自同一个家庭。我真的希望有一个解决方案!
答案 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。