How to access environment variables in an Expect script?

久未见 提交于 2019-12-20 16:16:17

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!