2011-06-27 47 views
8


Tôi đang cố gắng viết một tập lệnh tăng từ hệ thống này sang hệ thống khác thông qua TCL/Mong đợi. Đó là làm việc cho tôi. Tôi cần biểu thức chính quy trong đó mong đợi "$"mong đợi "#" được kết hợp để bất kỳ hệ thống nào có dấu nhắc trong đường dẫn có thể được bao gồm.TCL mong đợi biểu thức chính quy

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

log_user 0 
spawn ssh [email protected] 
expect "sword: " 
send "test\r" 
expect "$ " 
send "ssh beta\r" 
expect "# " 
send "uptime\r" 
expect "# " 

set igot $expect_out(buffer) 
puts $igot 

Trả lời

13

Sử dụng này:

expect -re {[$#] }
+3

Các phím này là: thêm cờ '-re' để chúng ta có thể khớp với RE, và đặt RE trong' {braces} 'để nó không bị thay thế. –

8

Một giải pháp chung chung hơn:

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

Cái này phù hợp với %, #$.
Dấu đô la thứ hai đảm bảo chỉ khớp mẫu vào cuối đầu vào.

Các vấn đề liên quan