centos - shellscript 循环执行代码,但是每次执行一次以后就退出了?
过去多啦不再A梦
过去多啦不再A梦 2017-04-25 09:01:06
0
4
887
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互信

执行那个后发现每次只能关闭一台机器脚本就退出了。需要再次执行才能关闭后面的机器,请问是为什么?谢谢

过去多啦不再A梦
过去多啦不再A梦

répondre à tous(4)
淡淡烟草味

Essayez d'écrire cette ligne comme ceci : ssh root@$HOSTNAME "poweroff" <

漂亮男人

Ou écrivez ssh -n. La raison pour laquelle cela se produit est que ssh lit le reste de votre stdin.

J'essaie donc de ne pas utiliser la redirection while + pour lire les données. Si je veux lire, j'utilise également un autre descripteur de fichier pour lire. stdin peut facilement être lu par d'autres commandes.

黄舟

perl -ne 'system q/ssh/, q/root@/.$_,q/poweroff/' host.log #Cela devrait fonctionner

刘奇

去掉pendant la lecture de $HOSTNAME中的$

pendant la lecture de HOSTNAME
faire
ssh root@$HOSTNAME "mise hors tension"
fait &Lt; hôte.log

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal