while で sshコマンドを実行すると1回しか実行されない

タイトルどおりなのですがすごく悩んだあげく
ググってみたらすぐ解決策が見つかったのでメモしておく。

chat-rate.com

www.m-bsys.com
2番目のブログから引用しますが

原因はsshコマンド実行に伴う標準入力の切替です。sshコマンドを実行すると、ローカルホストからの標準入力を停止し、sshで指定したリモートホストからの標準入力の受付を開始します。

つまり、上記のコードの例では、ローカルホストのファイルの読込みを終了させた上でsshコマンドを実行し、再びreadコマンドを実行しようとしているわけです。この時、既にファイルが閉じている為にwhileが終了してしまうわけです。

なるほど!