Posted to tcl by meissa at Tue Oct 29 20:37:33 GMT 2024view pretty

#!/usr/bin/expect
 
set cmd [lrange $argv 2 end]
set timeout [lindex $argv 0]
set password [index $argv 1]
 
set timeout $timeout
 
eval spawn -noecho $cmd
log_user 0
expect {
  -nocase -re "^.*password.*: " {
    send "$password\r"
    #log_user 1
    exp_continue
  }
  timeout { exit 1 }
  eof
}
catch wait result
#puts [string range "$expect_out(buffer)" 2 end-2]
set out $expect_out(buffer)
if {[string range $out 0 1] == "\r\n"} {
  set out [string range $out 2 end]
}
if {[string range $out end-1 end] == "\r\n"} {
  set out [string range $out 0 end-2]
}
puts $out
exit [lindex $result 3]