シェルスクリプトでwhile内のでsshコマンドを使用すると1回しか処理されない

シェルスクリプトでwhile文を利用して、そのループ処理内にsshコマンドを使用するとループ処理されずに1回のみとなる場合の対処方法です

下記のシェルスクリプトでは、LIST_FILE=/home/admin/list.txt にファイル名があり、そのファイルがリモート先に無ければSCPでコピーするような処理です

但し、while文でのループ処理でファイル内の複数行あると最後の行まで実行されますが、ループ処理内でssh等のコマンドがあると1回しか処理されません

ループ内でsshの処理があるとファイル全体が渡さるようで、その際にファイル無いが空となり読み込む行がないので1回のみとなります。この処理を回避するには「ssh -n」とオプションをつけて、標準入力を/dev/null からリダイレクトすると良いようです

修正したスクリプトは以下となります