마지막으로 며칠 동안 내 문제를 해결하려고합니다. 그래서 마침내 여기에 왔습니다.tclsh에서 쉘 스크립트로의 출력을 기대합니다.
리눅스/데비안 시스템에서 열어야하는 Tcl 스크립트를 작성해야합니다. 문제는 스크립트가 시스코 라우터에 로그인 한 다음 txload를 나타내는 SNMP 값을 가져와야하는 특수 tclsh 모드로 들어가야한다는 것입니다. 잠시 후 (SNMP를 지원하는) tclsh 모드에서 값을 얻지 만 스크립트로 되돌릴 수는 없습니다. 라우터 tclsh 모드에서만 계속 존재합니다. 내 스크립트는 이미 tclsh에있는 값에 따라 다른 값을 변경해야하지만 tclsh는 더 이상 필요하지 않습니다.
그래서 여기 내 질문 : tclsh에서 $ifnum
값을 어떻게 얻을 수 있습니까?하지만 일부 루프를 만들 때 스크립트를 사용할 수 있습니다. 왜냐하면 $ifnum
이 조건이 될 수있는 루프를 만들어야하기 때문입니다. 당신이 볼 수 있듯이
는 스크립트가 아직 완료되지 않습니다,하지만 말했듯이, 난 여기 갇혀있어하고 시도하는 것은 그것을 알아 내기 위해 :
#!/usr/bin/expect -f
set gateway [lindex $argv 0]
set serial [lindex $argv 1]
set timeout 5
spawn telnet $gateway
expect "Password:"
send "cisco\r"
expect "*>"
send "en\r"
expect "Password:"
send "cisco\r"
expect "*#"
send "set ifnumstr \[snmp_getone odczyt 1.3.6.1.4.1.9.2.2.1.1.24.6\]\r"
expect "*}"
send "regexp \{val='(\[0-9\]*)'\} \$ifnumstr \{\} ifnum \r"
expect "*#"
send "puts \$ifnum \r"
expect "*#"