以下简单期望脚本的目标是获取远程机器上的主机名
有时期望脚本无法对 $IP_ADDRESS 执行 ssh(因为远程机器不活动等)
所以在这种情况下,expect 脚本将在 10 秒后中断(超时 10),这没问题,但是......
有两种选择
在这两种情况下,expect 都会退出
但我不知道expect脚本是否成功执行ssh?
是否可以识别超时过程?或验证期望因超时而结束?
备注我的 Linux 机器版本 - red-hat 5.1
期待脚本
[TestLinux]# get_host_name_on_remote_machine=`cat << EOF
> set timeout 10
> spawn ssh $IP_ADDRESS
> expect {
> ")?" { send "yes\r" ; exp_continue }
>
> word: {send $PASS\r}
> }
> expect > {send "hostname\r"}
> expect > {send exit\r}
> expect eof …Run Code Online (Sandbox Code Playgroud) 我正在尝试在字典或数组格式上创建类似关键字 start_number last_number 的输出格式。在我的代码中,我使用了字典,代码是:
set keyword_numbers {}
set previous_keyword ""
set last_no 0
foreach item $data {
regexp {(\w+)\[(\d+)\]} $item -> keyword number
set new_keyword "$keyword $number"
puts $keyword
set key_start_end_data [dict create ]
if {$keyword == $previous_keyword} {
if { $number > $last_no } {
set last_no $number
} else {
set last_no $number
}
dict lappend key_start_end_data $keyword_data bit_end $last_no
} else {
set new_keyword $keyword
set start_no $number
set keyword_data [lindex $new_keyword 1]
dict lappend …Run Code Online (Sandbox Code Playgroud)