gpt4 book ai didi

linux - PSFTP 可以执行循环吗?

转载 作者:太空宇宙 更新时间:2023-11-04 12:40:42 26 4
gpt4 key购买 nike

我在互联网上搜索了很多,但还没有找到任何有用的信息。 PFTP 是否根本不允许您运行“IF”和“WHILE”之类的循环?

如果是这样,请让我知道语法,我试着用我的头来反对它。恼人的是,PuTTY 允许这些命令,但 psftp 似乎不允许,即使它们都来自同一个系列。我真的希望有一个解决方案!

最佳答案

PSFTP 不是一种语言。它只是一个 SFTP 客户端。 SFTP 本身只是一种在计算机之间移动文件的协议(protocol)。如果您在远程计算机上设置了 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

你可以把整个乱七八糟的东西放在一个循环或其他什么东西里。这里发生的是我们正在发送命令 test -f/tmp/foo && echo 'true' || echo 'false' 到远程计算机执行。命令的标准输出被返回并存储在变量 fileExists 中。然后我们就测试一下。

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

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

关于linux - PSFTP 可以执行循环吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40309478/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com