質問: ログをtar+gzip圧縮してssh転送するスクリプトを書いてます。
回答: これは、 spawn が、パイプの前だけをコマンドだと思って先に実行してしまうからです。 ですから、何とか spawn に 1コマンドだと思わせれば良いのです。 簡単なのは、 #!/bin/bash tar zcf - -C /var/www/html log | ssh hoge@aaa.com 'cat > /root/log.tar.gz' を、tenso.sh にでも、書いておいて 実行権を立て spawn ./tenso.sh とやるかです。 直接 bash を書いてしまっても良いです。 spawn bash -c "tar zcf - -C /var/www/html log | ssh hoge@aaa.com 'cat > /root/log.tar.gz'"