ユーザ用ツール

サイト用ツール


サイドバー

このページの翻訳:



最近の更新



Tag Cloud

bash:09_while_ssh

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
bash/09_while_ssh.txt · 最終更新: 2020/01/30 18:26 by matsui