问题
I am trying to run some commands on few remote hosts. I have the list of their ips in a file ips.txt
(one ip per line).
#!/bin/bash
while IFS= read -r wip; do
echo $wip
ssh root@$wip "pkill pgm; cd /root/pgm; nohup ./pgm > /dev/null 2>&1 &"
echo "$wip end"
done < ips.txt
I am running the above script. But the problem is after reading the first ip the loop exits. But if i remove the ssh line, it prints all ips.
回答1:
ssh
reads everything from stdin (ips.txt).
Replace
ssh
with
ssh -n
See: man ssh
来源:https://stackoverflow.com/questions/47858222/ssh-in-bash-script-exits-loop