How to check if a variable is set in expect script?

Jahid picture Jahid · Jan 15, 2016 · Viewed 9.1k times · Source

I am doing something like this:

#!/usr/bin/expect -f

if {$out != ""} {
  send_user $out
}

But it doesn't work. Error message:

can't read "out": no such variable
    while executing
"if {$out != ""} {
send_user $out
}"
    (file "./test" line 3)

Answer

Dinesh picture Dinesh · Jan 15, 2016

The error you got is because of non-existence of the variable out.

To check variable's existence, use the following

if {[info exists out]} {
    puts "variable does exist"
}

info exists returns 1 if variable exist, else 0.

If variable exists, then you can use the code what you posted.