in my bash loop over a list of some servers, if the ssh connects the bash script exits

前端 未结 2 1076
没有蜡笔的小新
没有蜡笔的小新 2020-12-11 10:44

I have a quick script to run a command on each server using ssh (i am sure there are lots of better ways to do this, but it was intended to just work quick!!). For the test1

2条回答
  •  佛祖请我去吃肉
    2020-12-11 11:18

    I think the reason is that as ssh is being forked and exec'd in your bash script the script's standard input is being reopened so your read simultaneously terminates. Try re-crafting as follows:

    for line in test1 test2 server1 server2
    do
        if [ "${line:0:1}" != "#"  ]; then
            ssh -q -oPasswordAuthentication=no -i id_dsa user1@${line} date
        fi
    done
    

    or maybe run the ssh in a sub-shell like this:

    ( ssh -q -oPasswordAuthentication=no -i id_dsa user1@${line} date )
    

提交回复
热议问题