Я пытаюсь подключить устройство из telnet с командой expect в сценарии bash. То, что я хотел бы сделать что-то выглядит следующим образом:Когда telneting с ожиданием, как grep выходное слово в качестве следующей входной переменной команды через expect_out?
#!/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 в будет использоваться в следующих командах. Можете ли вы предложить, как это сделать?
Предполагается, что ваш shebang ожидает. Почему heredoc? –