TCL ожидают регулярное выражение - PullRequest
8 голосов
/ 27 июня 2011


Я пытаюсь написать один скрипт, который поднимается из одной системы в другую через TCL / Expect.Это работает для меня.Мне нужно регулярное выражение, в котором ожидают, что "$" и ожидают, что "#" будет объединено, так что любая система с любым приглашением в пути может быть включена,

#!/usr/bin/expect
# Using ssh from expect

log_user 0
spawn ssh test@192.168.2.24
expect "sword: "
send "test\r"
expect "$ "
send "ssh beta\r"
expect "# "
send "uptime\r"
expect "# "

set igot $expect_out(buffer)
puts $igot

Ответы [ 2 ]

13 голосов
/ 27 июня 2011

Используйте это:

expect -re {[$#] }
8 голосов
/ 04 октября 2012

Более общее решение:

set prompt "(%|#|\\\$) $"
expect -re $prompt

Это соответствует % , # и $ .
Второй знак доллара обеспечивает соответствие модели только в конце ввода.

...