【发布时间】:2021-02-03 22:28:40
【问题描述】:
我正在运行一个连接到一些 unix 服务器并获取信息列表的脚本,但是我看到收集的信息的某些部分被 spawn 命令截断/截断:
例如:
U2107.D02.RJ02DBH-P1-D20 7 节点 2 RJ02DBH 1 544C01 有源 U2107.D02 U2107.D02.RJ02DBH-P1-D20 1 个节点 1 RJ02DBH 2 558B01 有源 U2107.D02 U2107.D02.RJ02DBH-P1-D20 7 节点 2 RJ02DBH 2 554C02 有源 U2107.D02 生成 sh lscardscript.sh 1 node1 RJ0 无法确定主机'x.x.x.x(x.x.x.x)'的真实性。 ECDSA 密钥指纹为 SHA256:i0CmsCsxkjdsahjdajhdsajhfhxxxxiAg。在上面的示例中,文本 spawn sh lscardscript.sh 不应该在那里,并且导致一行被截断。然后脚本尝试连接到下一个 IP,有时这些行在下一个 IP 上被截断,有时没有。
这是我的代码:
/usr/bin/expect <<'END_EXPECT'
set timeout -1
sleep 1
send \r
spawn sh lscardscript.sh
expect "yes" { send "yes\r"}
expect {
-nocase "*assword*" {
send "$env(PASSWORD)\r"
exp_continue
}
eof
}
我已经尝试了很多东西,但仍然看到相同的行为,有人知道吗?
【问题讨论】:
-
您发布的代码在没有任何参数的情况下运行
sh lscardscript.sh。没有什么可以截断...