我正在尝试编写一个脚本,通过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
Run Code Online (Sandbox Code Playgroud)
小智 8
更通用的解决方案:
set prompt "(%|#|\\\$) $"
expect -re $prompt
Run Code Online (Sandbox Code Playgroud)
这个匹配%,#和$.
第二个美元符号确保仅在输入结束时匹配模式.
| 归档时间: |
|
| 查看次数: |
7710 次 |
| 最近记录: |