====== 09 While 内でSSH ====== これだと、1行しか表示されない。 while read NAME HOST CMD do ssh $NAME@$HOST "$CMD" done SSH を実行すると、標準入力がそちらに振り向けられるため、read で読んだ1行のみならず、ファイル全体が SSH に渡されてしまう。従って、SSH を実行した後はもう読める行がないので while ループは1回で終了してしまう。 これを防ぐには、ssh に -n オプションを付け、/dev/null をリダイレクトし、標準入力をリダイレクトしないようにする。 ===== こちらだとOK ===== while read NAME HOST CMD do ssh -n $NAME@$HOST "$CMD" done {{tag>bash ssh while}}