来自文本文件的 ssh 输入

来自文本文件的 ssh 输入

这两个问题让我抓狂,而且我没有很好的 ssh 专业知识。 (但我怀疑这仅与重定向有关)

问题是,

您想要将调用的文件中的多行输入传递abc.txtssh命令。完成执行此操作所需的命令

$ssh _ _ abc.txt (只有两个字符)(详细解释会有所帮助)

您想要将多行输入从名为 Remote.txt 的文件传递到,ssh但后续输入中的所有前导制表符都应被删除。完成命令来执行此操作

$ssh _ _ _ Remote.txt

答案1

传递来自 a 的输入当地的文件到ssh,您应该使用输入重定向,如下所示:

ssh user@server < abc.txt

你确定这_一定是一个单独的角色吗?在这种情况下,如果x配置~/.ssh/config为某个 user@host 的别名,则这是可能的:

ssh x < abc.txt

我无法回答问题2,因为我不太明白。我想 Remote.txt 在遥控器上。

根据第二个问题,我认为 Remote.txt 是远程端的文件,在这种情况下命令应采用以下形式:

ssh user@server "bash < Remote.txt"

...但这不符合问题描述,_ _ _当然要删除尾随选项卡还需要更多,例如:

ssh user@server "bash < <(sed -e 's/^[    ]*//' Remote.txt)"

换句话说这才不是回答第二个问题。我希望这可以帮助您理解与ssh.

编辑

再次阅读 Q 后,由于它说“将多行输入传递到 ssh”,表明我们必须再次使用重定向到 ssh,在这种情况下文件必须是本地的。

ssh user@server < <(sed 's/^[    ]*//' Remote.txt)

但同样,我认为这不符合以下形式的答案ssh _ _ _ Remote.txt

答案2

答1.

$ssh user@server cat abc.txt

答2.

$ssh user@server "sed 's/^[    ]//g' Remote.txt"

答案3

对于第一部分:

$ssh << abc.txt

对于第二部分:

$ssh <<- remote.txt

相关内容