Expect 远程执行检查函数

            需安装 expect 才能正常使用。
yum install -y expect;
#!/usr/bin/env bash
#expect 功能检查
set -e;

EXPECT_CHECK(){
  local EXUSR=${1}
  local EXHOST=${2}
  local EXPWD=${3}
  #ssh test
  EXP_RST=`
    expect -c "
      set timeout 300
      spawn ssh ${EXUSR}@${EXHOST} \"echo PASS\"
      expect {
        \"not known\" {send_user \"[exec echo -e Erro:Host not known\n];exit\"}
        \"Connection refused\" {send_user \"[exec echo -e Erro:Connection refused\n];exit\"}
        \"(yes/no)?\" {send \"yes\r\";exp_continue}
          \"password:\" {send \"${EXPWD}\r\";exp_continue}
        \"Permission denied\" {send_user \"[exec echo -e Erro:Wrong passwd\n];exit\"}
      }
    "|grep -E 'PASS|Erro'|grep -v echo|sed 's/\r//g;s/\n//g'
  `
  if [[ ${EXP_RST} && ${EXP_RST} == PASS ]]; then
    echo -e "\nEXPECT CHECK COMPLETE!\n";
    return 0;
  else
    echo -e "\n${EXUSR}@${EXHOST} EXPECT CHECK ERROR!\n";
    echo -e "\n${EXP_RST}\n";
    return 1;
  fi
}