【发布时间】:2019-10-09 22:06:59
【问题描述】:
所以我试图做一个 if 语句来告诉我 sftp 连接是成功还是失败,如果它成功了,我想运行一段代码来自动执行我已经完成的 sftp 下载。 我的问题是这个 if 语句执行这个 sftp 连接,然后提示我输入密码并停止其余代码。 我想做这样的事情
if ( sftp -oPort=23 user@server )
then
expect <<-EOF
spawn sftp -oPort=23 user@server
.....
我想知道是否有可能让 if 语句不执行 sftp 连接然后不提示我,也许在后台执行它。
如果有人能告诉我我的要求是否可行,或者对我想要做的事情提出更好的解决方案,我将不胜感激,谢谢
【问题讨论】:
-
连接后不要尝试重新连接。无论如何,取决于你接下来打算做什么。您可能会尝试通过连接发送命令,但它不会起作用,因为此时
sftp将期待来自标准输入的输入。 -
编辑后,只需删除
if,除非您在连接并发送命令后需要执行其他操作。无论如何它都会出错。 -
这就是我的问题,如果我的实际 stfp 连接命令,导致它在一个heredoc 和它的内部期望,我需要做自动化部分
-
是的,连接后我需要下载一些文件
-
except有条件。看看this 问题和相关答案。它可能会给你一些关于如何进行的想法。
标签: bash