使用 expect 脚本通过 telnet 向 mikrotik 发送命令时出现问题

Problem with sending commands to mikrotik through telnet using expect script

我的任务是创建自动脚本,通过 telnet 向 mikrotik 路由器发送命令。我正在尝试创建 "expect" 脚本。

但是我卡在了命令发送部分。独立登录运行良好(第一个代码),但是当我添加另一个命令(第二个代码)时,控制台卡在密码处(https://imgur.com/WqXjyUP) for a few seconds and then i get output in picture: https://imgur.com/BR6a2q6

登录路由器的第一个代码。这个很好用。

spawn telnet "12.12.13.44";
expect "Login: ";
send "admin\r";
expect "password: ";
send "admin\r";
interact;

这是添加命令后的相同代码,我喜欢发送

spawn telnet "12.12.13.44";
expect "Login: ";
send "admin\r";
expect "password: ";
send "admin\r";
expect "> ";
send "ip firewall filter add chain=forward src-address=34.54.32.33 action=log\r";
exit;

我在没有期望的情况下使用脚本时得到了相同的输出,这是我之前尝试过的 "expect"

(
echo open "12.12.13.44"
sleep 2
echo "admin"
sleep 2
echo "admin"
sleep 2
echo "ip firewall filter add chain=forward src-address=34.54.32.33 action=log"
sleep 2
echo "exit"
) | telnet

PS。我正在使用 Debian 版本 8 和 RouterOS 6.34.4

PPS。以前提到的设备用于上传最终解决方案,我有另一台路由器和计算机(Ubuntu 18.10 和 RouterOS 6.44.1),我在其中尝试我的脚本和输出,我在图片中显示了我的两个路由器和计算机。

对于我的问题的任何建议,我将不胜感激。

我在 https://wiki.mikrotik.com/wiki/Manual:Console_login_process#FAQ 找到了解决方案。 在登录名后添加“+t”后,有问题的输出消失了。