问题
I would like to access the PATH environment variable inside an expect script.
How can I achieve that ?
My actual script is :
#!/usr/bin/expect
set timeout 300
send "echo $PATH\r"
and its ouput is :
can't read "PATH": no such variable
while executing
"send "echo $PATH\r""
回答1:
Expect is an extension of Tcl. Tcl access enviroment variables via the global env array:
send_user "$env(PATH)\n"
回答2:
You can use the global env array by using:
$::env(PATH)
This notion will also work inside procedures.
回答3:
If you want to read the target $PATH variable, then you must escape the "$" :
exp_sent -- echo "\$PATH\r"
来源:https://stackoverflow.com/questions/12695474/how-to-access-environment-variables-in-an-expect-script