我正在编写 expect 脚本来运行 bluetoothctl 命令。当 bluetoothctl 运行良好时,命令运行成功。但如果蓝牙服务出现问题,它会显示“正在等待连接到 bluetoothd...”,此时 expect 脚本已存在。我想捕获该异常,重新启动蓝牙服务,然后再次运行 expect 脚本。以下是脚本:
#!usr/bin/expect -f
set prompt "#"
set address [lindex $argv 0]
spawn sudo bluetoothctl
expect{
$prompt{
send "scan on\r"
sleep 5
send "scan off\r"
send "connect $address\r"
expect "Connection successful" {send "pair $address\r"}
expect "Pairing successful
}
timeout {
send_user "\n----------\r"
expect eof
}
}
我尝试使用超时但是提示出现后整个脚本就停止工作。