поиск переменной в ожидаемом ответе с использованием регулярных выражений - PullRequest
0 голосов
/ 15 апреля 2020

Я пытаюсь получить номер сервера, используя ожидаемый. Я пробовал оба следующих варианта, но он не работает, у кого-нибудь есть решение?

expect -re {([0-9]*), Name: $server} expect -re {([0-9]*), Name: \$server}

1 Ответ

1 голос
/ 15 апреля 2020

Expect является расширением , и Tcl использует фигурные скобки для цитирования без интерполяции (например, как оболочка использует одинарные кавычки). Чтобы разрешить расширение переменной, вам нужно использовать двойные кавычки. Однако двойные кавычки также допускают подстановку команд, для которых Tcl использует квадратные скобки. Вам нужно сделать это:

expect -re "(\[0-9]*), Name $server"

Но вам не нужно использовать выражение в скобках для чисел:

expect -re "(\\d*), Name $server"

Backsla sh удваивается из-за использования double котировки.

...