期望在/ for循环时不使用ssh参数

时间:2018-06-21 12:37:14

标签: bash expect

我正在尝试包括“ for”或“ while”循环以输入IP列表

即使我尝试了以下解决方案, Run expect command inside while loop in shell script

#!/bin/bash
 while read p; do
 {
  /usr/bin/expect<<EOF
 set timeout 3
 spawn ssh -q -o StrictHostKeyChecking=no  "root@192.168.102.$p" cat 
 /sys/class/net/enp0s3/address
 expect "Password:"
 send "xxxx\r";
 interact
  EOF
   }
  done<IP

下面是输出,在这里您可以看到每次迭代都没有执行命令,仅在终端上打印/回显

spawn ssh -q -o StrictHostKeyChecking=no root@192.168.102.105 
   cat /sys/class/net/enp0s3/address
   root@192.168.102.105's password: spawn ssh -q -o StrictHostKeyChecking=no 
   root@192.168.102.106 cat /sys/class/net/enp0s3/address
     root@192.168.102.106's password: spawn ssh -q -o 
    StrictHostKeyChecking=no root@192.168.102.107 cat /sys/class/net/enp0s3/address

我可以知道为什么ssh参数没有生效。我尝试使用单引号/双引号没有运气。

0 个答案:

没有答案