bash 스크립트에서 expect 명령을 사용하여 텔넷에서 장치를 연결하려고합니다. 내가하고 싶은 것은 다음과 같습니다.
#!/usr/bin/expect -f
telnet_setup()
{ sleep 10
expect <<EOF
spawn telnet $1
expect "Password:"
send "mypass\n"
expect "#"
send "my command to be run\n"
expect "Last number to be captured:"
#Here the whole sentence to be captured something like:
#Last number to be captured: 213124
set mynumber expect_out(buffer,0) | awk '{print $6}'
send "my next command with number $mynumber\"
expect "Correct number $mynumber is achieved!"
send "exit\n"
EOF
}
기능을 사용하려면 다음과 같이 사용합니다.
telnet_setup 1.1.1.1 > file.txt
내 목표는 다음 명령에서 사용할 $ mynumber와 함께이 함수를 사용하는 것입니다. 이를 제공하는 방법을 제안 해 주시겠습니까?
예상 코드를 셸 코드에서 분리하는 데 문제가 있습니다. 숫자를 캡처하려면 괄호를 캡처하는 정규식이 필요합니다.
send "my command to be run\r"
expect -re {Last number to be captured:\s+(\d+)}
set mynumber $expect_out(1,string)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다