#!/bin/bash
  COMMAND=$*
  HOST_INFO=host.info
 
  for IP in $(awk '/^[^#]/{print $1}' $HOST_INFO); do
      USER=$(awk -v ip=$IP 'ip==$1{print $2}' $HOST_INFO)
      PORT=$(awk -v ip=$IP 'ip==$1{print $3}' $HOST_INFO)
      PASS=$(awk -v ip=$IP 'ip==$1{print $4}' $HOST_INFO)
      expect -c " #在expect的shell环境中执行ssh -p $PORT $USER@$IP这条命令        spawn ssh -p $PORT $USER@$IP #捕获当前的一个信息,自动帮你输入        expect { #初次远程登录会输入yes/no,发送yes指令,\表示转义,r表示回车           \"(yes/no)\" {send \"yes\r\"; exp_continue} #紧接着就是输入密码,发送密码指令           \"password:\" {send \"$PASS\r\"; exp_continue} #$USER@*表示匹配当前的用户名和@符号,发送你想要的执行的命令           \"$USER@*\" {send \"$COMMAND\r exit\r\"; exp_continue}        }     "     echo "-------------------" done
 
   |