Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Shell 预期telnet-命令未执行_Shell_Tcl_Expect_Telnet - Fatal编程技术网

Shell 预期telnet-命令未执行

Shell 预期telnet-命令未执行,shell,tcl,expect,telnet,Shell,Tcl,Expect,Telnet,我正在努力通过telnet/expect执行命令 set send_slow {500 .5} send -s -- "show slot *\r" expect { ".*>" { send -s -- "y\r" exp_continue } ".*#\s" } send -s "who\r" expect "# " send -s "alm\r" expect "# " send -s -- "logout\r" show s

我正在努力通过telnet/expect执行命令

set send_slow {500 .5}
send -s -- "show slot *\r"
expect {
    ".*>" {
        send -s -- "y\r"
        exp_continue
    }
    ".*#\s"
}
send -s "who\r"
expect "# "
send -s "alm\r"
expect "# "
send -s -- "logout\r"
show slot
命令在插槽中打印卡。由于寻呼,要求用户继续。执行后,将显示提示
NODE2-1 
,我想执行命令
who

我得到的是:

2/36 PF清空上下UEQ
2/37风扇风扇打开
2/38空下无人机UEQ
2/39空下无人机UEQ
25/1 SFD40 SFD40向上
Node2-1 35;
Node2-1#谁 会话用户名日期终端 ------------------------------------------------------------------------------- 116(cli电话)*管理员5月29日06:57 XX.X.XX.XX 节点2-1#ALM注销 报警状态:严重-3大-0小-0
如您所见,第一个提示符为空,第二个提示符中有一个命令。执行它需要几秒钟的时间

此外,在下面可以看到,在提示符中有粘贴的命令
almlogout
。这两个是单独的命令->
alm
logout
。但是,它们是粘贴在一起的


问题是-如何在提示符中不延迟地执行命令,第二个问题是-如何将两个命令分开,默认情况下,
expect
语句的模式是glob样式,所以
>“*>”
应该是
-re.*>“
”。*\s“
应该是
-re.*\\s”
-re.*.*\s}
实际上是
“s”


由于
*
无法匹配任何内容,因此
-re{.*>}
-re{>}
相同,而
-re{.*\s}
-re{.\s}
相同,谢谢回复。我做了一些更正。但是,现在脚本输出:plz针对新问题提出新问题。