好吧,所以我最近發現了這裏的文檔提供標準輸入樣式行到交互式命令的神奇。然而,我試圖用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