我正在尝试编写一个脚本,通过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
答案 0 :(得分:13)
使用此:
expect -re {[$#] }
答案 1 :(得分:8)
更通用的解决方案:
set prompt "(%|#|\\\$) $"
expect -re $prompt
此匹配%,#和 $ 。
第二个美元符号确保仅在输入结束时匹配模式。