while read $HOSTNAME
do
ssh root@$HOSTNAME "poweroff"
done < host.log
host.log 中的內容:
192.168.122.1
192.168.122.2
192.168.122.3
機器配置過ssh互信
執行那個後發現每次只能關掉一台機器腳本就退出了。需要再次執行才能關閉後面的機器,請問是為什麼?謝謝
漂亮男人2017-04-25 09:03:06
或寫 ssh -n
吧。出現這種情況的原因是,ssh 讀取了你餘下的 stdin。
所以我盡量不使用 while + 重定向讀取數據,要讀也用另外的文件描述符來讀。 stdin 很容易被別的指令讀走的。
怪我咯2017-04-25 09:03:06
去掉while read $HOSTNAME中的$
while read HOSTNAME
do
ssh root@$HOSTNAME "poweroff"
done < host.log