Я пытаюсь отправить динамическую переменную в Expect, но у меня возникают проблемы.
Ниже выводится маршрутизатор:
router# show service id 123 base
sdp 1.1.1.1 Up Up
sdp 2.2.2.2 Up Up
...
...
...
sdp 5.5.5.5 Up Up
...
...
router#
Я пытаюсь достичь
1) извлекать определенную информацию все построчно до конца (х строк). Например, я хочу извлечь весь IP-адрес и установить переменную.
sdpip1 = 1.1.1.1
sdpip2 = 1.1.1.2
.......
........
sdpipx = xxxx
while {$count < 10} {
set linesplit [split $chksdp \n]
set sdpline [lindex $linesplit 1]
set sdpfirst [lindex $sdpline 0]
if {$sdpfirst != $router} {
set chksdpA [lindex $sdpline 0]
set errsdpline "sdp"
if {$chksdpA != $errsdpline} {
set sdpval "N/A\n"
break
} else {
set sdpip [lindex $linesplit $indexsdp]
set sdpip [lindex $sdpip 1]
foreach i $indexsdp {
set sdpip$i "$sdpip"
}
set indexsdp [expr {$indexsdp + 1}]
set indexsdpval [expr {$indexsdpval + 1}]
set count [expr {$count + 1}]
continue
}
}
2) в конце сценария я хочу отправить пользователю весь IP-адрес .. У меня возникла проблема ..
send_user "$sdpip$i\n"
Я не могу отправить_пользователя, используя переменную, которую яустановите перед этим
foreach i $indexsdp {
set sdpip$i "$sdpip"
}
, что означало установить инкрементную переменную для каждого IP-адреса.
Если я назначу переменную вручную, я смогу отправить ее пользователю.Например:
send_user "$sdpip1\n"
send_user "$sdpip2\n"
send_user "$sdpip3\n"
send_user "$sdpip4\n"
Итак, как я могу отправить пользователю на основе первого сценария, который будет извлекать определенное количество строк и IP-адрес?И только отправить пользователю это общее количество IP-адресов?
Спасибо