expect을 사용하여 telneting 할 때 expect_out을 통해 다음 명령 입력 변수로 출력 단어를 grep하는 방법은 무엇입니까?

사용자 3683697

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] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관