好的,所以我最近发现了将标准输入样式行输入交互式命令的此处文档的魔力。但是,我正在尝试将它与 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 提供标准输入和我的额外命令。