好吧,所以我最近发现了这里的文档提供标准输入样式行到交互式命令的神奇。然而,我试图用SSH来在远程服务器上执行一堆命令,但是我还需要在执行额外的命令之前输入一些实际的输入,以进一步混淆事项,我还需要获得一些结果回;)结合管道和这里的文件在SSH的外壳
这里就是我想要的使用方法:
#!/bin/sh
RESULT=$(find -type f "$PATH" | gzip | ssh "$HOST" <<- 'REMOTE_SYNC'
cat > "/tmp/.temp_file"
# Do something with /tmp/.temp_file
REMOTE_SYNC
这实际上是正确的?我遇到的部分问题是我需要在/ tmp中将数据传输到该文件,但我应该真正生成一个随机命名的临时文件,但我不知道该如何做到这一点,该名称给一个变量(所以我可以回到它),并仍然发送标准输入。
我也可能提取find | gzip部分到一个单独的命令首先在本地运行,因为gzip文件可能足够小,以至于在准备好时发送它会导致短得多的SSH连接,然后在它生成时发送它,但它仍然没有解决这样一个事实:我需要能够提供标准输入和我的额外命令SSH。
它看起来像你试图重塑'rsync';您可能想使用它。 – msw 2013-04-20 20:30:25