[CentOS] Bash scripting - Remotely ran commands break while loop

Wed Feb 1 21:07:31 UTC 2012
Peter Blajev <pblajev at ucsd.edu>

I have two CentOS5 systems server1 and server2. There is user peter on
server1 who can ssh to server2 using public ssh keys and no password is
needed.

What I noticed is that running remote ssh commands in bash script breaks
while loops.

======
#!/bin/sh
for i in server2 server2; do
     echo "--> Start"
     ssh peter@$i ls
     echo "--> END"
done

echo " server2
server2" | \
while read confLine; do
     echo "--> $confLine"
     ssh peter@$confLine ls
     echo "--> END $confLine"
done
====

The "for" loop in the script above will run twice but the "while" loop
below it will run only once.

This is very simple to test and I've tried it on different systems
including CentOS6 and OpenSolaris with the same result.

Any idea what would cause the ssh command to break the while loop?

Thanks
Peter