Это часть моего сценария Expect. Я запускаю его со страницы PHP!
#!/usr/local/bin/expect -f
set timeout 10
set olt [lindex $argv 1]
exp_send "show gpon onu baseinfo $olt\r"expect {
"*Error*" { send_user "\nInterface Invalida\n"; exit 1 }
"#"}
puts "$expect_out(buffer)"
Когда «show» возвращает несколько строк, код работает нормально. Но когда он возвращает более 20 строк, я получил это сообщение:
can't read "expect_out(buffer)": no such variable
while executing puts "$expect_out(buffer)
Это сообщение появляется только при запуске с моего сайта в php, как указано выше:
$result = exec("./cmd $olt 2>&1", $output, $return_var );
cmd — это скрипт, который содержит ожидаемый код выше.
Любая идея?
Большое спасибо!
Я нашел решения … часы и часы поиска ….
set NewLineChar "\r"exp_send "show gpon onu baseinfo $olt\r"expect {
$NewLineChar { append saida $expect_out(buffer); exp_continue }
"*Error*" { send_user "\nInterface Invalida\n"; exit 1 }
"#"}
🙂
Других решений пока нет …